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;
 }
 

Reply via email to