free null cleanup finale

Don't check for NULL before calling OPENSSL_free

Reviewed-by: Richard Levitte <levitte@openssl.org>
diff --git a/apps/apps.c b/apps/apps.c
index d68594a..46cc5a0 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -2165,9 +2165,7 @@
 
     BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
 
-    if (psk_key)
-        OPENSSL_free(psk_key);
-
+    OPENSSL_free(psk_key);
     psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
 
     BIO_pop(bconn);
@@ -2197,9 +2195,7 @@
 
     BIO_puts(out, "JPAKE authentication succeeded, setting PSK\n");
 
-    if (psk_key)
-        OPENSSL_free(psk_key);
-
+    OPENSSL_free(psk_key);
     psk_key = BN_bn2hex(JPAKE_get_shared_key(ctx));
 
     BIO_pop(bconn);
diff --git a/apps/asn1pars.c b/apps/asn1pars.c
index 7e1dfb7..01a50f4 100644
--- a/apps/asn1pars.c
+++ b/apps/asn1pars.c
@@ -321,11 +321,9 @@
         ERR_print_errors(bio_err);
     if (buf != NULL)
         BUF_MEM_free(buf);
-    if (name != NULL)
-        OPENSSL_free(name);
-    if (header != NULL)
-        OPENSSL_free(header);
-    if (strictpem && str != NULL)
+    OPENSSL_free(name);
+    OPENSSL_free(header);
+    if (strictpem)
         OPENSSL_free(str);
     ASN1_TYPE_free(at);
     if (osk != NULL)
diff --git a/apps/ca.c b/apps/ca.c
index b703b42..ad6b000 100644
--- a/apps/ca.c
+++ b/apps/ca.c
@@ -2271,8 +2271,7 @@
     ok = 1;
  end:
     for (i = 0; i < DB_NUMBER; i++) {
-        if (row[i] != NULL)
-            OPENSSL_free(row[i]);
+        OPENSSL_free(row[i]);
     }
     return (ok);
 }
@@ -2339,8 +2338,7 @@
     }
  end:
     for (i = 0; i < DB_NUMBER; i++) {
-        if (row[i] != NULL)
-            OPENSSL_free(row[i]);
+        OPENSSL_free(row[i]);
     }
     return (ok);
 }
@@ -2564,8 +2562,7 @@
 
  end:
 
-    if (tmp)
-        OPENSSL_free(tmp);
+    OPENSSL_free(tmp);
     ASN1_OBJECT_free(hold);
     ASN1_GENERALIZEDTIME_free(comp_time);
     ASN1_ENUMERATED_free(rtmp);
@@ -2719,8 +2716,7 @@
 
  end:
 
-    if (tmp)
-        OPENSSL_free(tmp);
+    OPENSSL_free(tmp);
     ASN1_GENERALIZEDTIME_free(comp_time);
 
     return ret;
diff --git a/apps/cms.c b/apps/cms.c
index 907b108..25e3ad6 100644
--- a/apps/cms.c
+++ b/apps/cms.c
@@ -1121,12 +1121,9 @@
         sk_OPENSSL_STRING_free(sksigners);
     if (skkeys)
         sk_OPENSSL_STRING_free(skkeys);
-    if (secret_key)
-        OPENSSL_free(secret_key);
-    if (secret_keyid)
-        OPENSSL_free(secret_keyid);
-    if (pwri_tmp)
-        OPENSSL_free(pwri_tmp);
+    OPENSSL_free(secret_key);
+    OPENSSL_free(secret_keyid);
+    OPENSSL_free(pwri_tmp);
     ASN1_OBJECT_free(econtent_type);
     if (rr)
         CMS_ReceiptRequest_free(rr);
@@ -1152,8 +1149,7 @@
     BIO_free(in);
     BIO_free(indata);
     BIO_free_all(out);
-    if (passin)
-        OPENSSL_free(passin);
+    OPENSSL_free(passin);
     return (ret);
 }
 
diff --git a/apps/dgst.c b/apps/dgst.c
index 69211d3..a679cb9 100644
--- a/apps/dgst.c
+++ b/apps/dgst.c
@@ -451,8 +451,7 @@
         sk_OPENSSL_STRING_free(sigopts);
     if (macopts)
         sk_OPENSSL_STRING_free(macopts);
-    if (sigbuf)
-        OPENSSL_free(sigbuf);
+    OPENSSL_free(sigbuf);
     BIO_free(bmd);
     return (ret);
 }
diff --git a/apps/dsa.c b/apps/dsa.c
index c23ed5d..d864c75 100644
--- a/apps/dsa.c
+++ b/apps/dsa.c
@@ -275,10 +275,8 @@
  end:
     BIO_free_all(out);
     DSA_free(dsa);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
     return (ret);
 }
 #else                           /* !OPENSSL_NO_DSA */
diff --git a/apps/ec.c b/apps/ec.c
index 471de47..c56150c 100644
--- a/apps/ec.c
+++ b/apps/ec.c
@@ -271,10 +271,8 @@
     BIO_free(in);
     BIO_free_all(out);
     EC_KEY_free(eckey);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
     return (ret);
 }
 #else                           /* !OPENSSL_NO_EC */
diff --git a/apps/ecparam.c b/apps/ecparam.c
index 082df26..dd0e8f5 100644
--- a/apps/ecparam.c
+++ b/apps/ecparam.c
@@ -489,8 +489,7 @@
     BN_free(ec_gen);
     BN_free(ec_order);
     BN_free(ec_cofactor);
-    if (buffer)
-        OPENSSL_free(buffer);
+    OPENSSL_free(buffer);
     BIO_free(in);
     BIO_free_all(out);
     EC_GROUP_free(group);
diff --git a/apps/enc.c b/apps/enc.c
index 83067b8..8b892cf 100644
--- a/apps/enc.c
+++ b/apps/enc.c
@@ -564,10 +564,8 @@
     }
  end:
     ERR_print_errors(bio_err);
-    if (strbuf != NULL)
-        OPENSSL_free(strbuf);
-    if (buff != NULL)
-        OPENSSL_free(buff);
+    OPENSSL_free(strbuf);
+    OPENSSL_free(buff);
     BIO_free(in);
     BIO_free_all(out);
     BIO_free(benc);
@@ -575,8 +573,7 @@
 #ifdef ZLIB
     BIO_free(bzl);
 #endif
-    if (pass)
-        OPENSSL_free(pass);
+    OPENSSL_free(pass);
     return (ret);
 }
 
diff --git a/apps/engine.c b/apps/engine.c
index 448802b..c7c0aaf 100644
--- a/apps/engine.c
+++ b/apps/engine.c
@@ -252,10 +252,8 @@
         }
         OPENSSL_free(name);
         name = NULL;
-        if (desc) {
-            OPENSSL_free(desc);
-            desc = NULL;
-        }
+        OPENSSL_free(desc);
+        desc = NULL;
         /* Move to the next command */
         num = ENGINE_ctrl(e, ENGINE_CTRL_GET_NEXT_CMD_TYPE, num, NULL, NULL);
     } while (num > 0);
@@ -265,10 +263,8 @@
  err:
     if (cmds)
         sk_OPENSSL_STRING_pop_free(cmds, identity);
-    if (name)
-        OPENSSL_free(name);
-    if (desc)
-        OPENSSL_free(desc);
+    OPENSSL_free(name);
+    OPENSSL_free(desc);
     return ret;
 }
 
diff --git a/apps/gendsa.c b/apps/gendsa.c
index 21988a0..75bd802 100644
--- a/apps/gendsa.c
+++ b/apps/gendsa.c
@@ -182,8 +182,7 @@
     BIO_free(in);
     BIO_free_all(out);
     DSA_free(dsa);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passout);
     return (ret);
 }
 #else                           /* !OPENSSL_NO_DSA */
diff --git a/apps/genpkey.c b/apps/genpkey.c
index ae68e7a..de14bd3 100644
--- a/apps/genpkey.c
+++ b/apps/genpkey.c
@@ -235,8 +235,7 @@
     EVP_PKEY_CTX_free(ctx);
     BIO_free_all(out);
     BIO_free(in);
-    if (pass)
-        OPENSSL_free(pass);
+    OPENSSL_free(pass);
 
     return ret;
 }
diff --git a/apps/genrsa.c b/apps/genrsa.c
index a3c00d8..a5ab658 100644
--- a/apps/genrsa.c
+++ b/apps/genrsa.c
@@ -218,8 +218,7 @@
     BN_GENCB_free(cb);
     RSA_free(rsa);
     BIO_free_all(out);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passout);
     if (ret != 0)
         ERR_print_errors(bio_err);
     return (ret);
diff --git a/apps/ocsp.c b/apps/ocsp.c
index 20dc1ae..d4ea019 100644
--- a/apps/ocsp.c
+++ b/apps/ocsp.c
@@ -271,12 +271,9 @@
             req_timeout = atoi(opt_arg());
             break;
         case OPT_URL:
-            if (thost)
-                OPENSSL_free(thost);
-            if (tport)
-                OPENSSL_free(tport);
-            if (tpath)
-                OPENSSL_free(tpath);
+            OPENSSL_free(thost);
+            OPENSSL_free(tport);
+            OPENSSL_free(tpath);
             if (!OCSP_parse_url(opt_arg(), &host, &port, &path, &use_ssl)) {
                 BIO_printf(bio_err, "%s Error parsing URL\n", prog);
                 goto end;
@@ -753,13 +750,9 @@
     sk_X509_pop_free(sign_other, X509_free);
     sk_X509_pop_free(verify_other, X509_free);
     sk_CONF_VALUE_pop_free(headers, X509V3_conf_free);
-
-    if (thost)
-        OPENSSL_free(thost);
-    if (tport)
-        OPENSSL_free(tport);
-    if (tpath)
-        OPENSSL_free(tpath);
+    OPENSSL_free(thost);
+    OPENSSL_free(tport);
+    OPENSSL_free(tpath);
 
     return (ret);
 }
diff --git a/apps/openssl.c b/apps/openssl.c
index f6013f7..c6b048a 100644
--- a/apps/openssl.c
+++ b/apps/openssl.c
@@ -509,18 +509,15 @@
     }
     ret = 1;
  end:
-    if (copied_argv)
-        OPENSSL_free(copied_argv);
-    if (to_free)
-        OPENSSL_free(to_free);
+    OPENSSL_free(copied_argv);
+    OPENSSL_free(to_free);
     if (config != NULL) {
         NCONF_free(config);
         config = NULL;
     }
     if (prog != NULL)
         lh_FUNCTION_free(prog);
-    if (arg.argv != NULL)
-        OPENSSL_free(arg.argv);
+    OPENSSL_free(arg.argv);
 
     BIO_free(bio_in);
     BIO_free_all(bio_out);
diff --git a/apps/passwd.c b/apps/passwd.c
index c529792..8dd8542 100644
--- a/apps/passwd.c
+++ b/apps/passwd.c
@@ -284,10 +284,8 @@
 
  end:
     ERR_print_errors(bio_err);
-    if (salt_malloc)
-        OPENSSL_free(salt_malloc);
-    if (passwd_malloc)
-        OPENSSL_free(passwd_malloc);
+    OPENSSL_free(salt_malloc);
+    OPENSSL_free(passwd_malloc);
     BIO_free(in);
     return (ret);
 }
diff --git a/apps/pkcs12.c b/apps/pkcs12.c
index b4b3730..4c62392 100644
--- a/apps/pkcs12.c
+++ b/apps/pkcs12.c
@@ -556,10 +556,8 @@
     BIO_free_all(out);
     if (canames)
         sk_OPENSSL_STRING_free(canames);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
     return (ret);
 }
 
diff --git a/apps/pkcs8.c b/apps/pkcs8.c
index 105c1cb..07ebf3b 100644
--- a/apps/pkcs8.c
+++ b/apps/pkcs8.c
@@ -343,10 +343,8 @@
     EVP_PKEY_free(pkey);
     BIO_free_all(out);
     BIO_free(in);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
 
     return ret;
 }
diff --git a/apps/pkey.c b/apps/pkey.c
index 716d6d0..f0930a7 100644
--- a/apps/pkey.c
+++ b/apps/pkey.c
@@ -208,10 +208,8 @@
     EVP_PKEY_free(pkey);
     BIO_free_all(out);
     BIO_free(in);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
 
     return ret;
 }
diff --git a/apps/pkeyutl.c b/apps/pkeyutl.c
index 3afe0eb..87e4950 100644
--- a/apps/pkeyutl.c
+++ b/apps/pkeyutl.c
@@ -322,12 +322,9 @@
     EVP_PKEY_CTX_free(ctx);
     BIO_free(in);
     BIO_free_all(out);
-    if (buf_in)
-        OPENSSL_free(buf_in);
-    if (buf_out)
-        OPENSSL_free(buf_out);
-    if (sig)
-        OPENSSL_free(sig);
+    OPENSSL_free(buf_in);
+    OPENSSL_free(buf_out);
+    OPENSSL_free(sig);
     return ret;
 }
 
@@ -413,10 +410,7 @@
     }
 
  end:
-
-    if (passin)
-        OPENSSL_free(passin);
-
+    OPENSSL_free(passin);
     return ctx;
 
 }
diff --git a/apps/req.c b/apps/req.c
index 0502a64..4ff3b24 100644
--- a/apps/req.c
+++ b/apps/req.c
@@ -886,15 +886,12 @@
     if (gen_eng)
         ENGINE_free(gen_eng);
 #endif
-    if (keyalgstr)
-        OPENSSL_free(keyalgstr);
+    OPENSSL_free(keyalgstr);
     X509_REQ_free(req);
     X509_free(x509ss);
     ASN1_INTEGER_free(serial);
-    if (passargin && passin)
-        OPENSSL_free(passin);
-    if (passargout && passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
     OBJ_cleanup();
     return (ret);
 }
diff --git a/apps/rsa.c b/apps/rsa.c
index 0a8e198..858699b 100644
--- a/apps/rsa.c
+++ b/apps/rsa.c
@@ -388,10 +388,8 @@
  end:
     BIO_free_all(out);
     RSA_free(rsa);
-    if (passin)
-        OPENSSL_free(passin);
-    if (passout)
-        OPENSSL_free(passout);
+    OPENSSL_free(passin);
+    OPENSSL_free(passout);
     return (ret);
 }
 #else                           /* !OPENSSL_NO_RSA */
diff --git a/apps/rsautl.c b/apps/rsautl.c
index f138293..0ef6105 100644
--- a/apps/rsautl.c
+++ b/apps/rsautl.c
@@ -315,12 +315,9 @@
     RSA_free(rsa);
     BIO_free(in);
     BIO_free_all(out);
-    if (rsa_in)
-        OPENSSL_free(rsa_in);
-    if (rsa_out)
-        OPENSSL_free(rsa_out);
-    if (passin)
-        OPENSSL_free(passin);
+    OPENSSL_free(rsa_in);
+    OPENSSL_free(rsa_out);
+    OPENSSL_free(passin);
     return ret;
 }
 
diff --git a/apps/s_client.c b/apps/s_client.c
index 8d8340d..a24d2f3 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -1985,24 +1985,18 @@
         SSL_free(con);
     }
 #if !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
-    if (next_proto.data)
-        OPENSSL_free(next_proto.data);
+    OPENSSL_free(next_proto.data);
 #endif
     SSL_CTX_free(ctx);
     X509_free(cert);
     sk_X509_CRL_pop_free(crls, X509_CRL_free);
     EVP_PKEY_free(key);
     sk_X509_pop_free(chain, X509_free);
-    if (pass)
-        OPENSSL_free(pass);
+    OPENSSL_free(pass);
     X509_VERIFY_PARAM_free(vpm);
     ssl_excert_free(exc);
     sk_OPENSSL_STRING_free(ssl_args);
     SSL_CONF_CTX_free(cctx);
-#ifndef OPENSSL_NO_JPAKE
-    if (jpake_secret && psk_key)
-        OPENSSL_free(psk_key);
-#endif
     OPENSSL_clear_free(cbuf, BUFSIZZ);
     OPENSSL_clear_free(sbuf, BUFSIZZ);
     OPENSSL_clear_free(mbuf, BUFSIZZ);
diff --git a/apps/s_server.c b/apps/s_server.c
index a616b64..5fb275d 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -1956,10 +1956,6 @@
     ssl_excert_free(exc);
     sk_OPENSSL_STRING_free(ssl_args);
     SSL_CONF_CTX_free(cctx);
-#ifndef OPENSSL_NO_JPAKE
-    if (jpake_secret && psk_key)
-        OPENSSL_free(psk_key);
-#endif
     BIO_free(bio_s_out);
     bio_s_out = NULL;
     BIO_free(bio_s_msg);
@@ -2931,8 +2927,7 @@
  err:
     if (ret >= 0)
         BIO_printf(bio_s_out, "ACCEPT\n");
-    if (buf != NULL)
-        OPENSSL_free(buf);
+    OPENSSL_free(buf);
     BIO_free_all(io);
     return (ret);
 }
@@ -3065,8 +3060,7 @@
 
  err:
 
-    if (buf != NULL)
-        OPENSSL_free(buf);
+    OPENSSL_free(buf);
     BIO_free_all(io);
     return (ret);
 }
diff --git a/apps/s_socket.c b/apps/s_socket.c
index caa5b61..29240e8 100644
--- a/apps/s_socket.c
+++ b/apps/s_socket.c
@@ -354,8 +354,7 @@
         } else
             sock = accept_socket;
         i = (*cb) (name, sock, type, context);
-        if (name != NULL)
-            OPENSSL_free(name);
+        OPENSSL_free(name);
         if (type == SOCK_STREAM)
             SHUTDOWN2(sock);
         if (naccept != -1)
diff --git a/apps/smime.c b/apps/smime.c
index 0fda865..8b8520b 100644
--- a/apps/smime.c
+++ b/apps/smime.c
@@ -664,8 +664,7 @@
     BIO_free(in);
     BIO_free(indata);
     BIO_free_all(out);
-    if (passin)
-        OPENSSL_free(passin);
+    OPENSSL_free(passin);
     return (ret);
 }
 
diff --git a/apps/speed.c b/apps/speed.c
index 08ab9c5..a5bd265 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -2529,8 +2529,6 @@
         fprintf(stdout, "\n");
     }
 
-    if (inp)
-        OPENSSL_free(inp);
-    if (out)
-        OPENSSL_free(out);
+    OPENSSL_free(inp);
+    OPENSSL_free(out);
 }
diff --git a/apps/spkac.c b/apps/spkac.c
index 7ceff9f..abae0e1 100644
--- a/apps/spkac.c
+++ b/apps/spkac.c
@@ -240,7 +240,6 @@
     BIO_free(in);
     BIO_free_all(out);
     EVP_PKEY_free(pkey);
-    if (passin)
-        OPENSSL_free(passin);
+    OPENSSL_free(passin);
     return (ret);
 }
diff --git a/apps/srp.c b/apps/srp.c
index b984c14..960ca82 100644
--- a/apps/srp.c
+++ b/apps/srp.c
@@ -384,10 +384,8 @@
                            errorline, configfile);
             goto end;
         }
-        if (tofree) {
-            OPENSSL_free(tofree);
-            tofree = NULL;
-        }
+        OPENSSL_free(tofree);
+        tofree = NULL;
 
         /* Lets get the config section we are using */
         if (section == NULL) {
@@ -519,26 +517,16 @@
                 row[DB_srpgN] = BUF_strdup(gNid);
 
                 if (!row[DB_srpid] || !row[DB_srpgN] || !row[DB_srptype]
-                    || !row[DB_srpverifier] || !row[DB_srpsalt] || (userinfo
-                                                                    &&
-                                                                    (!(row
-                                                                       [DB_srpinfo]
-                                                                       =
-                                                                       BUF_strdup
-                                                                       (userinfo))))
+                    || !row[DB_srpverifier] || !row[DB_srpsalt]
+                    || (userinfo &&
+                         (!(row [DB_srpinfo] = BUF_strdup (userinfo))))
                     || !update_index(db, row)) {
-                    if (row[DB_srpid])
-                        OPENSSL_free(row[DB_srpid]);
-                    if (row[DB_srpgN])
-                        OPENSSL_free(row[DB_srpgN]);
-                    if (row[DB_srpinfo])
-                        OPENSSL_free(row[DB_srpinfo]);
-                    if (row[DB_srptype])
-                        OPENSSL_free(row[DB_srptype]);
-                    if (row[DB_srpverifier])
-                        OPENSSL_free(row[DB_srpverifier]);
-                    if (row[DB_srpsalt])
-                        OPENSSL_free(row[DB_srpsalt]);
+                    OPENSSL_free(row[DB_srpid]);
+                    OPENSSL_free(row[DB_srpgN]);
+                    OPENSSL_free(row[DB_srpinfo]);
+                    OPENSSL_free(row[DB_srptype]);
+                    OPENSSL_free(row[DB_srpverifier]);
+                    OPENSSL_free(row[DB_srpsalt]);
                     goto end;
                 }
                 doupdatedb = 1;
@@ -676,8 +664,7 @@
 
     if (verbose)
         BIO_printf(bio_err, "SRP terminating with code %d.\n", ret);
-    if (tofree)
-        OPENSSL_free(tofree);
+    OPENSSL_free(tofree);
     if (ret)
         ERR_print_errors(bio_err);
     if (randfile)
diff --git a/apps/x509.c b/apps/x509.c
index 5418cce..31ae38a 100644
--- a/apps/x509.c
+++ b/apps/x509.c
@@ -955,8 +955,7 @@
     ASN1_INTEGER_free(sno);
     sk_ASN1_OBJECT_pop_free(trust, ASN1_OBJECT_free);
     sk_ASN1_OBJECT_pop_free(reject, ASN1_OBJECT_free);
-    if (passin)
-        OPENSSL_free(passin);
+    OPENSSL_free(passin);
     return (ret);
 }
 
@@ -996,8 +995,7 @@
         goto end;
 
  end:
-    if (buf)
-        OPENSSL_free(buf);
+    OPENSSL_free(buf);
     BN_free(serial);
     return bs;
 }