The diff below just removes NULL checks before various LibreSSL *_free() calls, on the assumption that that's the preferred usage where it's documented that *_free(NULL) is safe.
[Note that the behaviour of X509_REQ_free(NULL) and X509_NAME_free(NULL) is not documented in the man pages, so those calls in keyproc.c are not modified in this diff.] Ross Index: acctproc.c =================================================================== RCS file: /cvs/src/usr.sbin/acme-client/acctproc.c,v retrieving revision 1.11 diff -u -p -r1.11 acctproc.c --- acctproc.c 24 Jan 2017 13:32:55 -0000 1.11 +++ acctproc.c 28 Jul 2018 12:39:19 -0000 @@ -393,8 +393,7 @@ out: close(netsock); if (f != NULL) fclose(f); - if (pkey != NULL) - EVP_PKEY_free(pkey); + EVP_PKEY_free(pkey); ERR_print_errors_fp(stderr); ERR_free_strings(); return rc; Index: certproc.c =================================================================== RCS file: /cvs/src/usr.sbin/acme-client/certproc.c,v retrieving revision 1.10 diff -u -p -r1.10 certproc.c --- certproc.c 24 Jan 2017 13:32:55 -0000 1.10 +++ certproc.c 28 Jul 2018 12:39:19 -0000 @@ -231,10 +231,8 @@ certproc(int netsock, int filesock) out: close(netsock); close(filesock); - if (x != NULL) - X509_free(x); - if (chainx != NULL) - X509_free(chainx); + X509_free(x); + X509_free(chainx); free(csr); free(url); free(chain); Index: keyproc.c =================================================================== RCS file: /cvs/src/usr.sbin/acme-client/keyproc.c,v retrieving revision 1.9 diff -u -p -r1.9 keyproc.c --- keyproc.c 26 Mar 2017 18:41:02 -0000 1.9 +++ keyproc.c 28 Jul 2018 12:39:19 -0000 @@ -256,8 +256,7 @@ out: X509_REQ_free(x); if (name != NULL) X509_NAME_free(name); - if (pkey != NULL) - EVP_PKEY_free(pkey); + EVP_PKEY_free(pkey); ERR_print_errors_fp(stderr); ERR_free_strings(); return (rc); Index: revokeproc.c =================================================================== RCS file: /cvs/src/usr.sbin/acme-client/revokeproc.c,v retrieving revision 1.13 diff -u -p -r1.13 revokeproc.c --- revokeproc.c 8 Jul 2017 13:37:23 -0000 1.13 +++ revokeproc.c 28 Jul 2018 12:39:19 -0000 @@ -335,10 +335,8 @@ out: close(fd); if (f != NULL) fclose(f); - if (x != NULL) - X509_free(x); - if (bio != NULL) - BIO_free(bio); + X509_free(x); + BIO_free(bio); free(san); free(path); free(der); Index: rsa.c =================================================================== RCS file: /cvs/src/usr.sbin/acme-client/rsa.c,v retrieving revision 1.6 diff -u -p -r1.6 rsa.c --- rsa.c 24 Jan 2017 13:32:55 -0000 1.6 +++ rsa.c 28 Jul 2018 12:39:19 -0000 @@ -62,12 +62,10 @@ rsa_key_create(FILE *f, const char *fnam warnx("%s: PEM_write_PrivateKey", fname); err: - if (pkey != NULL) - EVP_PKEY_free(pkey); + EVP_PKEY_free(pkey); pkey = NULL; out: - if (ctx != NULL) - EVP_PKEY_CTX_free(ctx); + EVP_PKEY_CTX_free(ctx); return pkey; }