summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorderaadt <>2014-05-30 06:22:57 +0000
committerderaadt <>2014-05-30 06:22:57 +0000
commitabd9b10898e82011a65d8e8fca56bf56532edd69 (patch)
tree1ff700d79cee9e764329e5c50d7eb8d5109789cc
parent2ff11427d41a52cb126e9892413db066f8ae166a (diff)
downloadopenbsd-abd9b10898e82011a65d8e8fca56bf56532edd69.tar.gz
openbsd-abd9b10898e82011a65d8e8fca56bf56532edd69.tar.bz2
openbsd-abd9b10898e82011a65d8e8fca56bf56532edd69.zip
more: no need for null check before free
ok tedu guenther
-rw-r--r--src/lib/libcrypto/asn1/a_bitstr.c3
-rw-r--r--src/lib/libcrypto/asn1/a_bytes.c15
-rw-r--r--src/lib/libcrypto/asn1/a_enum.c3
-rw-r--r--src/lib/libcrypto/asn1/a_gentm.c3
-rw-r--r--src/lib/libcrypto/asn1/a_int.c9
-rw-r--r--src/lib/libcrypto/asn1/a_object.c12
-rw-r--r--src/lib/libcrypto/asn1/a_sign.c3
-rw-r--r--src/lib/libcrypto/asn1/a_utctm.c3
-rw-r--r--src/lib/libcrypto/asn1/asn1_gen.c3
-rw-r--r--src/lib/libcrypto/asn1/t_x509.c6
-rw-r--r--src/lib/libcrypto/asn1/x_info.c3
-rw-r--r--src/lib/libcrypto/asn1/x_x509.c6
-rw-r--r--src/lib/libcrypto/bio/b_sock.c3
-rw-r--r--src/lib/libcrypto/bio/bf_buff.c9
-rw-r--r--src/lib/libcrypto/bio/bf_lbuf.c3
-rw-r--r--src/lib/libcrypto/bio/bf_nbio.c3
-rw-r--r--src/lib/libcrypto/bio/bss_acpt.c9
-rw-r--r--src/lib/libcrypto/bio/bss_bio.c6
-rw-r--r--src/lib/libcrypto/bio/bss_conn.c21
-rw-r--r--src/lib/libcrypto/bio/bss_dgram.c6
-rw-r--r--src/lib/libcrypto/bn/bn_print.c3
-rw-r--r--src/lib/libcrypto/conf/conf_api.c3
-rw-r--r--src/lib/libcrypto/conf/conf_def.c18
-rw-r--r--src/lib/libcrypto/dh/dh_ameth.c3
-rw-r--r--src/lib/libcrypto/dsa/dsa_ameth.c3
-rw-r--r--src/lib/libcrypto/dso/dso_dlfcn.c3
-rw-r--r--src/lib/libcrypto/dso/dso_lib.c7
-rw-r--r--src/lib/libcrypto/ec/ec_ameth.c3
-rw-r--r--src/lib/libcrypto/ec/ec_asn1.c3
-rw-r--r--src/lib/libcrypto/ec/ec_mult.c11
-rw-r--r--src/lib/libcrypto/ec/eck_prn.c3
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp224.c9
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp256.c9
-rw-r--r--src/lib/libcrypto/ec/ecp_nistp521.c9
-rw-r--r--src/lib/libcrypto/engine/eng_dyn.c12
-rw-r--r--src/lib/libcrypto/objects/obj_dat.c9
-rw-r--r--src/lib/libcrypto/objects/obj_lib.c12
-rw-r--r--src/lib/libcrypto/pem/pem_info.c18
-rw-r--r--src/lib/libcrypto/pem/pem_seal.c6
-rw-r--r--src/lib/libcrypto/pem/pem_sign.c3
-rw-r--r--src/lib/libcrypto/stack/stack.c3
-rw-r--r--src/lib/libcrypto/txt_db/txt_db.c15
-rw-r--r--src/lib/libcrypto/x509v3/v3_prn.c3
-rw-r--r--src/lib/libcrypto/x509v3/v3_utl.c18
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_bitstr.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_bytes.c15
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_enum.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_gentm.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_int.c9
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_object.c12
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_sign.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/a_utctm.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/asn1_gen.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/t_x509.c6
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_info.c3
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_x509.c6
-rw-r--r--src/lib/libssl/src/crypto/bio/b_sock.c3
-rw-r--r--src/lib/libssl/src/crypto/bio/bf_buff.c9
-rw-r--r--src/lib/libssl/src/crypto/bio/bf_lbuf.c3
-rw-r--r--src/lib/libssl/src/crypto/bio/bf_nbio.c3
-rw-r--r--src/lib/libssl/src/crypto/bio/bss_acpt.c9
-rw-r--r--src/lib/libssl/src/crypto/bio/bss_bio.c6
-rw-r--r--src/lib/libssl/src/crypto/bio/bss_conn.c21
-rw-r--r--src/lib/libssl/src/crypto/bio/bss_dgram.c6
-rw-r--r--src/lib/libssl/src/crypto/bn/bn_print.c3
-rw-r--r--src/lib/libssl/src/crypto/conf/conf_api.c3
-rw-r--r--src/lib/libssl/src/crypto/conf/conf_def.c18
-rw-r--r--src/lib/libssl/src/crypto/dh/dh_ameth.c3
-rw-r--r--src/lib/libssl/src/crypto/dsa/dsa_ameth.c3
-rw-r--r--src/lib/libssl/src/crypto/dso/dso_dlfcn.c3
-rw-r--r--src/lib/libssl/src/crypto/dso/dso_lib.c7
-rw-r--r--src/lib/libssl/src/crypto/ec/ec_ameth.c3
-rw-r--r--src/lib/libssl/src/crypto/ec/ec_asn1.c3
-rw-r--r--src/lib/libssl/src/crypto/ec/ec_mult.c11
-rw-r--r--src/lib/libssl/src/crypto/ec/eck_prn.c3
-rw-r--r--src/lib/libssl/src/crypto/ec/ecp_nistp224.c9
-rw-r--r--src/lib/libssl/src/crypto/ec/ecp_nistp256.c9
-rw-r--r--src/lib/libssl/src/crypto/ec/ecp_nistp521.c9
-rw-r--r--src/lib/libssl/src/crypto/engine/eng_dyn.c12
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_dat.c9
-rw-r--r--src/lib/libssl/src/crypto/objects/obj_lib.c12
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_info.c18
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_seal.c6
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_sign.c3
-rw-r--r--src/lib/libssl/src/crypto/stack/stack.c3
-rw-r--r--src/lib/libssl/src/crypto/txt_db/txt_db.c15
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_prn.c3
-rw-r--r--src/lib/libssl/src/crypto/x509v3/v3_utl.c18
88 files changed, 206 insertions, 424 deletions
diff --git a/src/lib/libcrypto/asn1/a_bitstr.c b/src/lib/libcrypto/asn1/a_bitstr.c
index f3cce8b536..058a3ccc5f 100644
--- a/src/lib/libcrypto/asn1/a_bitstr.c
+++ b/src/lib/libcrypto/asn1/a_bitstr.c
@@ -165,8 +165,7 @@ c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **pp, long len)
165 s = NULL; 165 s = NULL;
166 166
167 ret->length = (int)len; 167 ret->length = (int)len;
168 if (ret->data != NULL) 168 free(ret->data);
169 free(ret->data);
170 ret->data = s; 169 ret->data = s;
171 ret->type = V_ASN1_BIT_STRING; 170 ret->type = V_ASN1_BIT_STRING;
172 if (a != NULL) 171 if (a != NULL)
diff --git a/src/lib/libcrypto/asn1/a_bytes.c b/src/lib/libcrypto/asn1/a_bytes.c
index 6cc774e782..0d26e46681 100644
--- a/src/lib/libcrypto/asn1/a_bytes.c
+++ b/src/lib/libcrypto/asn1/a_bytes.c
@@ -110,8 +110,7 @@ d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp,
110 } else 110 } else
111 s = NULL; 111 s = NULL;
112 112
113 if (ret->data != NULL) 113 free(ret->data);
114 free(ret->data);
115 ret->length = (int)len; 114 ret->length = (int)len;
116 ret->data = s; 115 ret->data = s;
117 ret->type = tag; 116 ret->type = tag;
@@ -203,8 +202,7 @@ d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp,
203 } else { 202 } else {
204 if (len != 0) { 203 if (len != 0) {
205 if ((ret->length < len) || (ret->data == NULL)) { 204 if ((ret->length < len) || (ret->data == NULL)) {
206 if (ret->data != NULL) 205 free(ret->data);
207 free(ret->data);
208 ret->data = NULL; 206 ret->data = NULL;
209 s = malloc(len + 1); 207 s = malloc(len + 1);
210 if (s == NULL) { 208 if (s == NULL) {
@@ -218,8 +216,7 @@ d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp,
218 p += len; 216 p += len;
219 } else { 217 } else {
220 s = NULL; 218 s = NULL;
221 if (ret->data != NULL) 219 free(ret->data);
222 free(ret->data);
223 } 220 }
224 221
225 ret->length = (int)len; 222 ret->length = (int)len;
@@ -293,8 +290,7 @@ asn1_collate_primitive(ASN1_STRING *a, ASN1_const_CTX *c)
293 goto err; 290 goto err;
294 291
295 a->length = num; 292 a->length = num;
296 if (a->data != NULL) 293 free(a->data);
297 free(a->data);
298 a->data = (unsigned char *)b.data; 294 a->data = (unsigned char *)b.data;
299 if (os != NULL) 295 if (os != NULL)
300 ASN1_STRING_free(os); 296 ASN1_STRING_free(os);
@@ -304,7 +300,6 @@ err:
304 ASN1err(ASN1_F_ASN1_COLLATE_PRIMITIVE, c->error); 300 ASN1err(ASN1_F_ASN1_COLLATE_PRIMITIVE, c->error);
305 if (os != NULL) 301 if (os != NULL)
306 ASN1_STRING_free(os); 302 ASN1_STRING_free(os);
307 if (b.data != NULL) 303 free(b.data);
308 free(b.data);
309 return (0); 304 return (0);
310} 305}
diff --git a/src/lib/libcrypto/asn1/a_enum.c b/src/lib/libcrypto/asn1/a_enum.c
index aa28c7c8d7..b514288782 100644
--- a/src/lib/libcrypto/asn1/a_enum.c
+++ b/src/lib/libcrypto/asn1/a_enum.c
@@ -76,8 +76,7 @@ ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
76 76
77 a->type = V_ASN1_ENUMERATED; 77 a->type = V_ASN1_ENUMERATED;
78 if (a->length < (int)(sizeof(long) + 1)) { 78 if (a->length < (int)(sizeof(long) + 1)) {
79 if (a->data != NULL) 79 free(a->data);
80 free(a->data);
81 a->data = calloc(1, sizeof(long) + 1); 80 a->data = calloc(1, sizeof(long) + 1);
82 } 81 }
83 if (a->data == NULL) { 82 if (a->data == NULL) {
diff --git a/src/lib/libcrypto/asn1/a_gentm.c b/src/lib/libcrypto/asn1/a_gentm.c
index 7f8bc2fef7..e9881943a1 100644
--- a/src/lib/libcrypto/asn1/a_gentm.c
+++ b/src/lib/libcrypto/asn1/a_gentm.c
@@ -234,8 +234,7 @@ ASN1_GENERALIZEDTIME_adj_internal(ASN1_GENERALIZEDTIME *s, time_t t,
234 ERR_R_MALLOC_FAILURE); 234 ERR_R_MALLOC_FAILURE);
235 return (NULL); 235 return (NULL);
236 } 236 }
237 if (s->data != NULL) 237 free(s->data);
238 free(s->data);
239 s->data = (unsigned char *)p; 238 s->data = (unsigned char *)p;
240 } 239 }
241 240
diff --git a/src/lib/libcrypto/asn1/a_int.c b/src/lib/libcrypto/asn1/a_int.c
index 0559cce384..881f08a766 100644
--- a/src/lib/libcrypto/asn1/a_int.c
+++ b/src/lib/libcrypto/asn1/a_int.c
@@ -256,8 +256,7 @@ c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, long len)
256 memcpy(s, p, (int)len); 256 memcpy(s, p, (int)len);
257 } 257 }
258 258
259 if (ret->data != NULL) 259 free(ret->data);
260 free(ret->data);
261 ret->data = s; 260 ret->data = s;
262 ret->length = (int)len; 261 ret->length = (int)len;
263 if (a != NULL) 262 if (a != NULL)
@@ -324,8 +323,7 @@ d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length)
324 p += len; 323 p += len;
325 } 324 }
326 325
327 if (ret->data != NULL) 326 free(ret->data);
328 free(ret->data);
329 ret->data = s; 327 ret->data = s;
330 ret->length = (int)len; 328 ret->length = (int)len;
331 if (a != NULL) 329 if (a != NULL)
@@ -350,8 +348,7 @@ ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
350 348
351 a->type = V_ASN1_INTEGER; 349 a->type = V_ASN1_INTEGER;
352 if (a->length < (int)(sizeof(long) + 1)) { 350 if (a->length < (int)(sizeof(long) + 1)) {
353 if (a->data != NULL) 351 free(a->data);
354 free(a->data);
355 a->data = calloc(1, sizeof(long) + 1); 352 a->data = calloc(1, sizeof(long) + 1);
356 } 353 }
357 if (a->data == NULL) { 354 if (a->data == NULL) {
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c
index b3a7e672ee..34221e0e98 100644
--- a/src/lib/libcrypto/asn1/a_object.c
+++ b/src/lib/libcrypto/asn1/a_object.c
@@ -310,8 +310,7 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len)
310 /* once detached we can change it */ 310 /* once detached we can change it */
311 if ((data == NULL) || (ret->length < len)) { 311 if ((data == NULL) || (ret->length < len)) {
312 ret->length = 0; 312 ret->length = 0;
313 if (data != NULL) 313 free(data);
314 free(data);
315 data = malloc(len ? (int)len : 1); 314 data = malloc(len ? (int)len : 1);
316 if (data == NULL) { 315 if (data == NULL) {
317 i = ERR_R_MALLOC_FAILURE; 316 i = ERR_R_MALLOC_FAILURE;
@@ -365,15 +364,12 @@ ASN1_OBJECT_free(ASN1_OBJECT *a)
365 if (a == NULL) 364 if (a == NULL)
366 return; 365 return;
367 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) { 366 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) {
368 if (a->sn != NULL) 367 free((void *)a->sn);
369 free((void *)a->sn); 368 free((void *)a->ln);
370 if (a->ln != NULL)
371 free((void *)a->ln);
372 a->sn = a->ln = NULL; 369 a->sn = a->ln = NULL;
373 } 370 }
374 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { 371 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) {
375 if (a->data != NULL) 372 free((void *)a->data);
376 free((void *)a->data);
377 a->data = NULL; 373 a->data = NULL;
378 a->length = 0; 374 a->length = 0;
379 } 375 }
diff --git a/src/lib/libcrypto/asn1/a_sign.c b/src/lib/libcrypto/asn1/a_sign.c
index 40c6809669..2705a0402e 100644
--- a/src/lib/libcrypto/asn1/a_sign.c
+++ b/src/lib/libcrypto/asn1/a_sign.c
@@ -218,8 +218,7 @@ ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
218 ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB); 218 ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB);
219 goto err; 219 goto err;
220 } 220 }
221 if (signature->data != NULL) 221 free(signature->data);
222 free(signature->data);
223 signature->data = buf_out; 222 signature->data = buf_out;
224 buf_out = NULL; 223 buf_out = NULL;
225 signature->length = outl; 224 signature->length = outl;
diff --git a/src/lib/libcrypto/asn1/a_utctm.c b/src/lib/libcrypto/asn1/a_utctm.c
index 35f2b7fd66..b8e5b7afc1 100644
--- a/src/lib/libcrypto/asn1/a_utctm.c
+++ b/src/lib/libcrypto/asn1/a_utctm.c
@@ -177,8 +177,7 @@ ASN1_UTCTIME_adj_internal(ASN1_UTCTIME *s, time_t t, int offset_day,
177 ASN1err(ASN1_F_ASN1_UTCTIME_ADJ, ERR_R_MALLOC_FAILURE); 177 ASN1err(ASN1_F_ASN1_UTCTIME_ADJ, ERR_R_MALLOC_FAILURE);
178 return (NULL); 178 return (NULL);
179 } 179 }
180 if (s->data != NULL) 180 free(s->data);
181 free(s->data);
182 s->data = (unsigned char *)p; 181 s->data = (unsigned char *)p;
183 } 182 }
184 183
diff --git a/src/lib/libcrypto/asn1/asn1_gen.c b/src/lib/libcrypto/asn1/asn1_gen.c
index 7abbac6059..8ab8944d64 100644
--- a/src/lib/libcrypto/asn1/asn1_gen.c
+++ b/src/lib/libcrypto/asn1/asn1_gen.c
@@ -474,8 +474,7 @@ asn1_multi(int utype, const char *section, X509V3_CTX *cnf)
474 der = NULL; 474 der = NULL;
475 475
476bad: 476bad:
477 if (der) 477 free(der);
478 free(der);
479 if (sk) 478 if (sk)
480 sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free); 479 sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free);
481 if (sect) 480 if (sect)
diff --git a/src/lib/libcrypto/asn1/t_x509.c b/src/lib/libcrypto/asn1/t_x509.c
index efba93adeb..f1c045e0e6 100644
--- a/src/lib/libcrypto/asn1/t_x509.c
+++ b/src/lib/libcrypto/asn1/t_x509.c
@@ -245,8 +245,7 @@ X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
245 ret = 1; 245 ret = 1;
246 246
247err: 247err:
248 if (m != NULL) 248 free(m);
249 free(m);
250 return (ret); 249 return (ret);
251} 250}
252 251
@@ -294,8 +293,7 @@ int X509_ocspid_print (BIO *bp, X509 *x)
294 return (1); 293 return (1);
295 294
296err: 295err:
297 if (der != NULL) 296 free(der);
298 free(der);
299 return (0); 297 return (0);
300} 298}
301 299
diff --git a/src/lib/libcrypto/asn1/x_info.c b/src/lib/libcrypto/asn1/x_info.c
index 2d1bf0d22d..b17d7ace11 100644
--- a/src/lib/libcrypto/asn1/x_info.c
+++ b/src/lib/libcrypto/asn1/x_info.c
@@ -102,8 +102,7 @@ X509_INFO_free(X509_INFO *x)
102 X509_CRL_free(x->crl); 102 X509_CRL_free(x->crl);
103 if (x->x_pkey != NULL) 103 if (x->x_pkey != NULL)
104 X509_PKEY_free(x->x_pkey); 104 X509_PKEY_free(x->x_pkey);
105 if (x->enc_data != NULL) 105 free(x->enc_data);
106 free(x->enc_data);
107 free(x); 106 free(x);
108} 107}
109 108
diff --git a/src/lib/libcrypto/asn1/x_x509.c b/src/lib/libcrypto/asn1/x_x509.c
index e93d97d2c4..7053bb87eb 100644
--- a/src/lib/libcrypto/asn1/x_x509.c
+++ b/src/lib/libcrypto/asn1/x_x509.c
@@ -105,8 +105,7 @@ x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
105 break; 105 break;
106 106
107 case ASN1_OP_D2I_POST: 107 case ASN1_OP_D2I_POST:
108 if (ret->name != NULL) 108 free(ret->name);
109 free(ret->name);
110 ret->name = X509_NAME_oneline(ret->cert_info->subject, NULL, 0); 109 ret->name = X509_NAME_oneline(ret->cert_info->subject, NULL, 0);
111 break; 110 break;
112 111
@@ -123,8 +122,7 @@ x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
123 sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free); 122 sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free);
124 ASIdentifiers_free(ret->rfc3779_asid); 123 ASIdentifiers_free(ret->rfc3779_asid);
125#endif 124#endif
126 if (ret->name != NULL) 125 free(ret->name);
127 free(ret->name);
128 ret->name = NULL; 126 ret->name = NULL;
129 break; 127 break;
130 } 128 }
diff --git a/src/lib/libcrypto/bio/b_sock.c b/src/lib/libcrypto/bio/b_sock.c
index a9c4408a09..c7a10ca348 100644
--- a/src/lib/libcrypto/bio/b_sock.c
+++ b/src/lib/libcrypto/bio/b_sock.c
@@ -435,8 +435,7 @@ again:
435 } 435 }
436 ret = 1; 436 ret = 1;
437err: 437err:
438 if (str != NULL) 438 free(str);
439 free(str);
440 if ((ret == 0) && (s != -1)) { 439 if ((ret == 0) && (s != -1)) {
441 close(s); 440 close(s);
442 s = -1; 441 s = -1;
diff --git a/src/lib/libcrypto/bio/bf_buff.c b/src/lib/libcrypto/bio/bf_buff.c
index e96da40a58..0866c8c7a3 100644
--- a/src/lib/libcrypto/bio/bf_buff.c
+++ b/src/lib/libcrypto/bio/bf_buff.c
@@ -130,10 +130,8 @@ buffer_free(BIO *a)
130 if (a == NULL) 130 if (a == NULL)
131 return (0); 131 return (0);
132 b = (BIO_F_BUFFER_CTX *)a->ptr; 132 b = (BIO_F_BUFFER_CTX *)a->ptr;
133 if (b->ibuf != NULL) 133 free(b->ibuf);
134 free(b->ibuf); 134 free(b->obuf);
135 if (b->obuf != NULL)
136 free(b->obuf);
137 free(a->ptr); 135 free(a->ptr);
138 a->ptr = NULL; 136 a->ptr = NULL;
139 a->init = 0; 137 a->init = 0;
@@ -342,8 +340,7 @@ buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
342 p1 = malloc((int)num); 340 p1 = malloc((int)num);
343 if (p1 == NULL) 341 if (p1 == NULL)
344 goto malloc_error; 342 goto malloc_error;
345 if (ctx->ibuf != NULL) 343 free(ctx->ibuf);
346 free(ctx->ibuf);
347 ctx->ibuf = p1; 344 ctx->ibuf = p1;
348 } 345 }
349 ctx->ibuf_off = 0; 346 ctx->ibuf_off = 0;
diff --git a/src/lib/libcrypto/bio/bf_lbuf.c b/src/lib/libcrypto/bio/bf_lbuf.c
index 54c370d038..42c0e1dca5 100644
--- a/src/lib/libcrypto/bio/bf_lbuf.c
+++ b/src/lib/libcrypto/bio/bf_lbuf.c
@@ -131,8 +131,7 @@ linebuffer_free(BIO *a)
131 if (a == NULL) 131 if (a == NULL)
132 return (0); 132 return (0);
133 b = (BIO_LINEBUFFER_CTX *)a->ptr; 133 b = (BIO_LINEBUFFER_CTX *)a->ptr;
134 if (b->obuf != NULL) 134 free(b->obuf);
135 free(b->obuf);
136 free(a->ptr); 135 free(a->ptr);
137 a->ptr = NULL; 136 a->ptr = NULL;
138 a->init = 0; 137 a->init = 0;
diff --git a/src/lib/libcrypto/bio/bf_nbio.c b/src/lib/libcrypto/bio/bf_nbio.c
index 5a0f6b276a..9b0ec7d41f 100644
--- a/src/lib/libcrypto/bio/bf_nbio.c
+++ b/src/lib/libcrypto/bio/bf_nbio.c
@@ -119,8 +119,7 @@ nbiof_free(BIO *a)
119{ 119{
120 if (a == NULL) 120 if (a == NULL)
121 return (0); 121 return (0);
122 if (a->ptr != NULL) 122 free(a->ptr);
123 free(a->ptr);
124 a->ptr = NULL; 123 a->ptr = NULL;
125 a->init = 0; 124 a->init = 0;
126 a->flags = 0; 125 a->flags = 0;
diff --git a/src/lib/libcrypto/bio/bss_acpt.c b/src/lib/libcrypto/bio/bss_acpt.c
index 943d3d9d96..d246aba681 100644
--- a/src/lib/libcrypto/bio/bss_acpt.c
+++ b/src/lib/libcrypto/bio/bss_acpt.c
@@ -148,10 +148,8 @@ BIO_ACCEPT_free(BIO_ACCEPT *a)
148 if (a == NULL) 148 if (a == NULL)
149 return; 149 return;
150 150
151 if (a->param_addr != NULL) 151 free(a->param_addr);
152 free(a->param_addr); 152 free(a->addr);
153 if (a->addr != NULL)
154 free(a->addr);
155 if (a->bio_chain != NULL) 153 if (a->bio_chain != NULL)
156 BIO_free(a->bio_chain); 154 BIO_free(a->bio_chain);
157 free(a); 155 free(a);
@@ -352,8 +350,7 @@ acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
352 if (ptr != NULL) { 350 if (ptr != NULL) {
353 if (num == 0) { 351 if (num == 0) {
354 b->init = 1; 352 b->init = 1;
355 if (data->param_addr != NULL) 353 free(data->param_addr);
356 free(data->param_addr);
357 data->param_addr = BUF_strdup(ptr); 354 data->param_addr = BUF_strdup(ptr);
358 } else if (num == 1) { 355 } else if (num == 1) {
359 data->accept_nbio = (ptr != NULL); 356 data->accept_nbio = (ptr != NULL);
diff --git a/src/lib/libcrypto/bio/bss_bio.c b/src/lib/libcrypto/bio/bss_bio.c
index eda2e2a55c..519002beed 100644
--- a/src/lib/libcrypto/bio/bss_bio.c
+++ b/src/lib/libcrypto/bio/bss_bio.c
@@ -160,12 +160,8 @@ bio_free(BIO *bio)
160 if (b->peer) 160 if (b->peer)
161 bio_destroy_pair(bio); 161 bio_destroy_pair(bio);
162 162
163 if (b->buf != NULL) { 163 free(b->buf);
164 free(b->buf);
165 }
166
167 free(b); 164 free(b);
168
169 return 1; 165 return 1;
170} 166}
171 167
diff --git a/src/lib/libcrypto/bio/bss_conn.c b/src/lib/libcrypto/bio/bss_conn.c
index 7ed8f1fe31..a31e5a170b 100644
--- a/src/lib/libcrypto/bio/bss_conn.c
+++ b/src/lib/libcrypto/bio/bss_conn.c
@@ -147,8 +147,7 @@ conn_state(BIO *b, BIO_CONNECT *c)
147 *q = '\0'; 147 *q = '\0';
148 break; 148 break;
149 } 149 }
150 if (c->param_port != NULL) 150 free(c->param_port);
151 free(c->param_port);
152 c->param_port = BUF_strdup(p); 151 c->param_port = BUF_strdup(p);
153 } 152 }
154 } 153 }
@@ -315,10 +314,8 @@ BIO_CONNECT_free(BIO_CONNECT *a)
315 if (a == NULL) 314 if (a == NULL)
316 return; 315 return;
317 316
318 if (a->param_hostname != NULL) 317 free(a->param_hostname);
319 free(a->param_hostname); 318 free(a->param_port);
320 if (a->param_port != NULL)
321 free(a->param_port);
322 free(a); 319 free(a);
323} 320}
324 321
@@ -469,12 +466,10 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
469 if (ptr != NULL) { 466 if (ptr != NULL) {
470 b->init = 1; 467 b->init = 1;
471 if (num == 0) { 468 if (num == 0) {
472 if (data->param_hostname != NULL) 469 free(data->param_hostname);
473 free(data->param_hostname);
474 data->param_hostname = BUF_strdup(ptr); 470 data->param_hostname = BUF_strdup(ptr);
475 } else if (num == 1) { 471 } else if (num == 1) {
476 if (data->param_port != NULL) 472 free(data->param_port);
477 free(data->param_port);
478 data->param_port = BUF_strdup(ptr); 473 data->param_port = BUF_strdup(ptr);
479 } else if (num == 2) { 474 } else if (num == 2) {
480 char buf[16]; 475 char buf[16];
@@ -482,8 +477,7 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
482 477
483 snprintf(buf, sizeof buf, "%d.%d.%d.%d", 478 snprintf(buf, sizeof buf, "%d.%d.%d.%d",
484 p[0], p[1], p[2], p[3]); 479 p[0], p[1], p[2], p[3]);
485 if (data->param_hostname != NULL) 480 free(data->param_hostname);
486 free(data->param_hostname);
487 data->param_hostname = BUF_strdup(buf); 481 data->param_hostname = BUF_strdup(buf);
488 memcpy(&(data->ip[0]), ptr, 4); 482 memcpy(&(data->ip[0]), ptr, 4);
489 } else if (num == 3) { 483 } else if (num == 3) {
@@ -491,8 +485,7 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
491 485
492 snprintf(buf, sizeof buf, "%d", 486 snprintf(buf, sizeof buf, "%d",
493 *(int *)ptr); 487 *(int *)ptr);
494 if (data->param_port != NULL) 488 free(data->param_port);
495 free(data->param_port);
496 data->param_port = BUF_strdup(buf); 489 data->param_port = BUF_strdup(buf);
497 data->port= *(int *)ptr; 490 data->port= *(int *)ptr;
498 } 491 }
diff --git a/src/lib/libcrypto/bio/bss_dgram.c b/src/lib/libcrypto/bio/bss_dgram.c
index 8f7439c51e..9160fe4018 100644
--- a/src/lib/libcrypto/bio/bss_dgram.c
+++ b/src/lib/libcrypto/bio/bss_dgram.c
@@ -217,8 +217,7 @@ dgram_free(BIO *a)
217 return 0; 217 return 0;
218 218
219 data = (bio_dgram_data *)a->ptr; 219 data = (bio_dgram_data *)a->ptr;
220 if (data != NULL) 220 free(data);
221 free(data);
222 221
223 return (1); 222 return (1);
224} 223}
@@ -830,8 +829,7 @@ dgram_sctp_free(BIO *a)
830 return 0; 829 return 0;
831 830
832 data = (bio_dgram_sctp_data *)a->ptr; 831 data = (bio_dgram_sctp_data *)a->ptr;
833 if (data != NULL) 832 free(data);
834 free(data);
835 833
836 return (1); 834 return (1);
837} 835}
diff --git a/src/lib/libcrypto/bn/bn_print.c b/src/lib/libcrypto/bn/bn_print.c
index ea5fa5c3da..ad3a847f01 100644
--- a/src/lib/libcrypto/bn/bn_print.c
+++ b/src/lib/libcrypto/bn/bn_print.c
@@ -157,8 +157,7 @@ BN_bn2dec(const BIGNUM *a)
157 ok = 1; 157 ok = 1;
158 158
159err: 159err:
160 if (bn_data != NULL) 160 free(bn_data);
161 free(bn_data);
162 if (t != NULL) 161 if (t != NULL)
163 BN_free(t); 162 BN_free(t);
164 if (!ok && buf) { 163 if (!ok && buf) {
diff --git a/src/lib/libcrypto/conf/conf_api.c b/src/lib/libcrypto/conf/conf_api.c
index 98e058dad4..41c5b05fcb 100644
--- a/src/lib/libcrypto/conf/conf_api.c
+++ b/src/lib/libcrypto/conf/conf_api.c
@@ -300,8 +300,7 @@ err:
300 if (!ok) { 300 if (!ok) {
301 if (sk != NULL) 301 if (sk != NULL)
302 sk_CONF_VALUE_free(sk); 302 sk_CONF_VALUE_free(sk);
303 if (v != NULL) 303 free(v);
304 free(v);
305 v = NULL; 304 v = NULL;
306 } 305 }
307 return (v); 306 return (v);
diff --git a/src/lib/libcrypto/conf/conf_def.c b/src/lib/libcrypto/conf/conf_def.c
index b3c75e1a9e..b550623e57 100644
--- a/src/lib/libcrypto/conf/conf_def.c
+++ b/src/lib/libcrypto/conf/conf_def.c
@@ -416,15 +416,13 @@ again:
416 } 416 }
417 if (buff != NULL) 417 if (buff != NULL)
418 BUF_MEM_free(buff); 418 BUF_MEM_free(buff);
419 if (section != NULL) 419 free(section);
420 free(section);
421 return (1); 420 return (1);
422 421
423err: 422err:
424 if (buff != NULL) 423 if (buff != NULL)
425 BUF_MEM_free(buff); 424 BUF_MEM_free(buff);
426 if (section != NULL) 425 free(section);
427 free(section);
428 if (line != NULL) 426 if (line != NULL)
429 *line = eline; 427 *line = eline;
430 ERR_asprintf_error_data("line %ld", eline); 428 ERR_asprintf_error_data("line %ld", eline);
@@ -433,12 +431,9 @@ err:
433 conf->data = NULL; 431 conf->data = NULL;
434 } 432 }
435 if (v != NULL) { 433 if (v != NULL) {
436 if (v->name != NULL) 434 free(v->name);
437 free(v->name); 435 free(v->value);
438 if (v->value != NULL) 436 free(v);
439 free(v->value);
440 if (v != NULL)
441 free(v);
442 } 437 }
443 return (0); 438 return (0);
444} 439}
@@ -615,8 +610,7 @@ str_copy(CONF *conf, char *section, char **pto, char *from)
615 buf->data[to++] = *(from++); 610 buf->data[to++] = *(from++);
616 } 611 }
617 buf->data[to]='\0'; 612 buf->data[to]='\0';
618 if (*pto != NULL) 613 free(*pto);
619 free(*pto);
620 *pto = buf->data; 614 *pto = buf->data;
621 free(buf); 615 free(buf);
622 return (1); 616 return (1);
diff --git a/src/lib/libcrypto/dh/dh_ameth.c b/src/lib/libcrypto/dh/dh_ameth.c
index 40e0202bff..119ac615a6 100644
--- a/src/lib/libcrypto/dh/dh_ameth.c
+++ b/src/lib/libcrypto/dh/dh_ameth.c
@@ -275,8 +275,7 @@ static int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
275 return 1; 275 return 1;
276 276
277err: 277err:
278 if (dp != NULL) 278 free(dp);
279 free(dp);
280 if (params != NULL) 279 if (params != NULL)
281 ASN1_STRING_free(params); 280 ASN1_STRING_free(params);
282 if (prkey != NULL) 281 if (prkey != NULL)
diff --git a/src/lib/libcrypto/dsa/dsa_ameth.c b/src/lib/libcrypto/dsa/dsa_ameth.c
index 16617d40f5..e2c3980e56 100644
--- a/src/lib/libcrypto/dsa/dsa_ameth.c
+++ b/src/lib/libcrypto/dsa/dsa_ameth.c
@@ -342,8 +342,7 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
342 return 1; 342 return 1;
343 343
344err: 344err:
345 if (dp != NULL) 345 free(dp);
346 free(dp);
347 if (params != NULL) 346 if (params != NULL)
348 ASN1_STRING_free(params); 347 ASN1_STRING_free(params);
349 if (prkey != NULL) 348 if (prkey != NULL)
diff --git a/src/lib/libcrypto/dso/dso_dlfcn.c b/src/lib/libcrypto/dso/dso_dlfcn.c
index bebfdcdbc4..87ebdb660d 100644
--- a/src/lib/libcrypto/dso/dso_dlfcn.c
+++ b/src/lib/libcrypto/dso/dso_dlfcn.c
@@ -146,8 +146,7 @@ dlfcn_load(DSO *dso)
146 146
147err: 147err:
148 /* Cleanup! */ 148 /* Cleanup! */
149 if (filename != NULL) 149 free(filename);
150 free(filename);
151 if (ptr != NULL) 150 if (ptr != NULL)
152 dlclose(ptr); 151 dlclose(ptr);
153 return (0); 152 return (0);
diff --git a/src/lib/libcrypto/dso/dso_lib.c b/src/lib/libcrypto/dso/dso_lib.c
index 3859be7b42..fa1c3c2b54 100644
--- a/src/lib/libcrypto/dso/dso_lib.c
+++ b/src/lib/libcrypto/dso/dso_lib.c
@@ -156,11 +156,8 @@ DSO_free(DSO *dso)
156 } 156 }
157 157
158 sk_void_free(dso->meth_data); 158 sk_void_free(dso->meth_data);
159 if (dso->filename != NULL) 159 free(dso->filename);
160 free(dso->filename); 160 free(dso->loaded_filename);
161 if (dso->loaded_filename != NULL)
162 free(dso->loaded_filename);
163
164 free(dso); 161 free(dso);
165 return (1); 162 return (1);
166} 163}
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c
index b41879c431..ec074329f2 100644
--- a/src/lib/libcrypto/ec/ec_ameth.c
+++ b/src/lib/libcrypto/ec/ec_ameth.c
@@ -492,8 +492,7 @@ err:
492 BN_free(order); 492 BN_free(order);
493 if (ctx) 493 if (ctx)
494 BN_CTX_free(ctx); 494 BN_CTX_free(ctx);
495 if (buffer != NULL) 495 free(buffer);
496 free(buffer);
497 return (ret); 496 return (ret);
498} 497}
499 498
diff --git a/src/lib/libcrypto/ec/ec_asn1.c b/src/lib/libcrypto/ec/ec_asn1.c
index 2409cd0886..342db2a992 100644
--- a/src/lib/libcrypto/ec/ec_asn1.c
+++ b/src/lib/libcrypto/ec/ec_asn1.c
@@ -805,8 +805,7 @@ ec_asn1_parameters2group(const ECPARAMETERS * params)
805 } 805 }
806 /* extract seed (optional) */ 806 /* extract seed (optional) */
807 if (params->curve->seed != NULL) { 807 if (params->curve->seed != NULL) {
808 if (ret->seed != NULL) 808 free(ret->seed);
809 free(ret->seed);
810 if (!(ret->seed = malloc(params->curve->seed->length))) { 809 if (!(ret->seed = malloc(params->curve->seed->length))) {
811 ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 810 ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP,
812 ERR_R_MALLOC_FAILURE); 811 ERR_R_MALLOC_FAILURE);
diff --git a/src/lib/libcrypto/ec/ec_mult.c b/src/lib/libcrypto/ec/ec_mult.c
index 0fd0cab2f1..8894a8f907 100644
--- a/src/lib/libcrypto/ec/ec_mult.c
+++ b/src/lib/libcrypto/ec/ec_mult.c
@@ -683,10 +683,8 @@ err:
683 BN_CTX_free(new_ctx); 683 BN_CTX_free(new_ctx);
684 if (tmp != NULL) 684 if (tmp != NULL)
685 EC_POINT_free(tmp); 685 EC_POINT_free(tmp);
686 if (wsize != NULL) 686 free(wsize);
687 free(wsize); 687 free(wNAF_len);
688 if (wNAF_len != NULL)
689 free(wNAF_len);
690 if (wNAF != NULL) { 688 if (wNAF != NULL) {
691 signed char **w; 689 signed char **w;
692 690
@@ -698,12 +696,9 @@ err:
698 if (val != NULL) { 696 if (val != NULL) {
699 for (v = val; *v != NULL; v++) 697 for (v = val; *v != NULL; v++)
700 EC_POINT_clear_free(*v); 698 EC_POINT_clear_free(*v);
701
702 free(val); 699 free(val);
703 } 700 }
704 if (val_sub != NULL) { 701 free(val_sub);
705 free(val_sub);
706 }
707 return ret; 702 return ret;
708} 703}
709 704
diff --git a/src/lib/libcrypto/ec/eck_prn.c b/src/lib/libcrypto/ec/eck_prn.c
index 3f2973e5b6..60b00fddb3 100644
--- a/src/lib/libcrypto/ec/eck_prn.c
+++ b/src/lib/libcrypto/ec/eck_prn.c
@@ -325,8 +325,7 @@ err:
325 BN_free(cofactor); 325 BN_free(cofactor);
326 if (ctx) 326 if (ctx)
327 BN_CTX_free(ctx); 327 BN_CTX_free(ctx);
328 if (buffer != NULL) 328 free(buffer);
329 free(buffer);
330 return (ret); 329 return (ret);
331} 330}
332 331
diff --git a/src/lib/libcrypto/ec/ecp_nistp224.c b/src/lib/libcrypto/ec/ecp_nistp224.c
index 6e9b9fac3c..afe25853e6 100644
--- a/src/lib/libcrypto/ec/ecp_nistp224.c
+++ b/src/lib/libcrypto/ec/ecp_nistp224.c
@@ -1546,12 +1546,9 @@ err:
1546 EC_POINT_free(generator); 1546 EC_POINT_free(generator);
1547 if (new_ctx != NULL) 1547 if (new_ctx != NULL)
1548 BN_CTX_free(new_ctx); 1548 BN_CTX_free(new_ctx);
1549 if (secrets != NULL) 1549 free(secrets);
1550 free(secrets); 1550 free(pre_comp);
1551 if (pre_comp != NULL) 1551 free(tmp_felems);
1552 free(pre_comp);
1553 if (tmp_felems != NULL)
1554 free(tmp_felems);
1555 return ret; 1552 return ret;
1556} 1553}
1557 1554
diff --git a/src/lib/libcrypto/ec/ecp_nistp256.c b/src/lib/libcrypto/ec/ecp_nistp256.c
index b2398e106c..7fe7be27de 100644
--- a/src/lib/libcrypto/ec/ecp_nistp256.c
+++ b/src/lib/libcrypto/ec/ecp_nistp256.c
@@ -2101,12 +2101,9 @@ err:
2101 EC_POINT_free(generator); 2101 EC_POINT_free(generator);
2102 if (new_ctx != NULL) 2102 if (new_ctx != NULL)
2103 BN_CTX_free(new_ctx); 2103 BN_CTX_free(new_ctx);
2104 if (secrets != NULL) 2104 free(secrets);
2105 free(secrets); 2105 free(pre_comp);
2106 if (pre_comp != NULL) 2106 free(tmp_smallfelems);
2107 free(pre_comp);
2108 if (tmp_smallfelems != NULL)
2109 free(tmp_smallfelems);
2110 return ret; 2107 return ret;
2111} 2108}
2112 2109
diff --git a/src/lib/libcrypto/ec/ecp_nistp521.c b/src/lib/libcrypto/ec/ecp_nistp521.c
index 083e017cdc..5d5a747ee8 100644
--- a/src/lib/libcrypto/ec/ecp_nistp521.c
+++ b/src/lib/libcrypto/ec/ecp_nistp521.c
@@ -1988,12 +1988,9 @@ err:
1988 EC_POINT_free(generator); 1988 EC_POINT_free(generator);
1989 if (new_ctx != NULL) 1989 if (new_ctx != NULL)
1990 BN_CTX_free(new_ctx); 1990 BN_CTX_free(new_ctx);
1991 if (secrets != NULL) 1991 free(secrets);
1992 free(secrets); 1992 free(pre_comp);
1993 if (pre_comp != NULL) 1993 free(tmp_felems);
1994 free(pre_comp);
1995 if (tmp_felems != NULL)
1996 free(tmp_felems);
1997 return ret; 1994 return ret;
1998} 1995}
1999 1996
diff --git a/src/lib/libcrypto/engine/eng_dyn.c b/src/lib/libcrypto/engine/eng_dyn.c
index f59d768350..e2de4603ee 100644
--- a/src/lib/libcrypto/engine/eng_dyn.c
+++ b/src/lib/libcrypto/engine/eng_dyn.c
@@ -169,10 +169,8 @@ static void dynamic_data_ctx_free_func(void *parent, void *ptr,
169 dynamic_data_ctx *ctx = (dynamic_data_ctx *)ptr; 169 dynamic_data_ctx *ctx = (dynamic_data_ctx *)ptr;
170 if(ctx->dynamic_dso) 170 if(ctx->dynamic_dso)
171 DSO_free(ctx->dynamic_dso); 171 DSO_free(ctx->dynamic_dso);
172 if(ctx->DYNAMIC_LIBNAME) 172 free((void *)ctx->DYNAMIC_LIBNAME);
173 free((void*)ctx->DYNAMIC_LIBNAME); 173 free((void *)ctx->engine_id);
174 if(ctx->engine_id)
175 free((void*)ctx->engine_id);
176 if(ctx->dirs) 174 if(ctx->dirs)
177 sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str); 175 sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str);
178 free(ctx); 176 free(ctx);
@@ -335,8 +333,7 @@ static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void))
335 /* a NULL 'p' or a string of zero-length is the same thing */ 333 /* a NULL 'p' or a string of zero-length is the same thing */
336 if(p && (strlen((const char *)p) < 1)) 334 if(p && (strlen((const char *)p) < 1))
337 p = NULL; 335 p = NULL;
338 if(ctx->DYNAMIC_LIBNAME) 336 free((void *)ctx->DYNAMIC_LIBNAME);
339 free((void*)ctx->DYNAMIC_LIBNAME);
340 if(p) 337 if(p)
341 ctx->DYNAMIC_LIBNAME = BUF_strdup(p); 338 ctx->DYNAMIC_LIBNAME = BUF_strdup(p);
342 else 339 else
@@ -349,8 +346,7 @@ static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void))
349 /* a NULL 'p' or a string of zero-length is the same thing */ 346 /* a NULL 'p' or a string of zero-length is the same thing */
350 if(p && (strlen((const char *)p) < 1)) 347 if(p && (strlen((const char *)p) < 1))
351 p = NULL; 348 p = NULL;
352 if(ctx->engine_id) 349 free((void *)ctx->engine_id);
353 free((void*)ctx->engine_id);
354 if(p) 350 if(p)
355 ctx->engine_id = BUF_strdup(p); 351 ctx->engine_id = BUF_strdup(p);
356 else 352 else
diff --git a/src/lib/libcrypto/objects/obj_dat.c b/src/lib/libcrypto/objects/obj_dat.c
index e31940da45..a71959222f 100644
--- a/src/lib/libcrypto/objects/obj_dat.c
+++ b/src/lib/libcrypto/objects/obj_dat.c
@@ -294,8 +294,7 @@ OBJ_add_object(const ASN1_OBJECT *obj)
294 ao[i]->obj = o; 294 ao[i]->obj = o;
295 aop = lh_ADDED_OBJ_insert(added, ao[i]); 295 aop = lh_ADDED_OBJ_insert(added, ao[i]);
296 /* memory leak, buit should not normally matter */ 296 /* memory leak, buit should not normally matter */
297 if (aop != NULL) 297 free(aop);
298 free(aop);
299 } 298 }
300 } 299 }
301 o->flags &= ~(ASN1_OBJECT_FLAG_DYNAMIC | 300 o->flags &= ~(ASN1_OBJECT_FLAG_DYNAMIC |
@@ -308,10 +307,8 @@ err2:
308 OBJerr(OBJ_F_OBJ_ADD_OBJECT, ERR_R_MALLOC_FAILURE); 307 OBJerr(OBJ_F_OBJ_ADD_OBJECT, ERR_R_MALLOC_FAILURE);
309err: 308err:
310 for (i = ADDED_DATA; i <= ADDED_NID; i++) 309 for (i = ADDED_DATA; i <= ADDED_NID; i++)
311 if (ao[i] != NULL) 310 free(ao[i]);
312 free(ao[i]); 311 free(o);
313 if (o != NULL)
314 free(o);
315 return (NID_undef); 312 return (NID_undef);
316} 313}
317 314
diff --git a/src/lib/libcrypto/objects/obj_lib.c b/src/lib/libcrypto/objects/obj_lib.c
index 57f0b28cc0..25bc8fb5ee 100644
--- a/src/lib/libcrypto/objects/obj_lib.c
+++ b/src/lib/libcrypto/objects/obj_lib.c
@@ -114,14 +114,10 @@ OBJ_dup(const ASN1_OBJECT *o)
114 114
115err: 115err:
116 OBJerr(OBJ_F_OBJ_DUP, ERR_R_MALLOC_FAILURE); 116 OBJerr(OBJ_F_OBJ_DUP, ERR_R_MALLOC_FAILURE);
117 if (ln != NULL) 117 free(ln);
118 free(ln); 118 free(sn);
119 if (sn != NULL) 119 free(data);
120 free(sn); 120 free(r);
121 if (data != NULL)
122 free(data);
123 if (r != NULL)
124 free(r);
125 return (NULL); 121 return (NULL);
126} 122}
127 123
diff --git a/src/lib/libcrypto/pem/pem_info.c b/src/lib/libcrypto/pem/pem_info.c
index 40600e30f3..7605c7653c 100644
--- a/src/lib/libcrypto/pem/pem_info.c
+++ b/src/lib/libcrypto/pem/pem_info.c
@@ -256,12 +256,9 @@ start:
256 } else { 256 } else {
257 /* unknown */ 257 /* unknown */
258 } 258 }
259 if (name != NULL) 259 free(name);
260 free(name); 260 free(header);
261 if (header != NULL) 261 free(data);
262 free(header);
263 if (data != NULL)
264 free(data);
265 name = NULL; 262 name = NULL;
266 header = NULL; 263 header = NULL;
267 data = NULL; 264 data = NULL;
@@ -291,12 +288,9 @@ err:
291 ret = NULL; 288 ret = NULL;
292 } 289 }
293 290
294 if (name != NULL) 291 free(name);
295 free(name); 292 free(header);
296 if (header != NULL) 293 free(data);
297 free(header);
298 if (data != NULL)
299 free(data);
300 return (ret); 294 return (ret);
301} 295}
302 296
diff --git a/src/lib/libcrypto/pem/pem_seal.c b/src/lib/libcrypto/pem/pem_seal.c
index a7b9379223..e6e73dd23d 100644
--- a/src/lib/libcrypto/pem/pem_seal.c
+++ b/src/lib/libcrypto/pem/pem_seal.c
@@ -113,8 +113,7 @@ PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type,
113 ret = npubk; 113 ret = npubk;
114 114
115err: 115err:
116 if (s != NULL) 116 free(s);
117 free(s);
118 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH); 117 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH);
119 return (ret); 118 return (ret);
120} 119}
@@ -182,8 +181,7 @@ PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl,
182err: 181err:
183 EVP_MD_CTX_cleanup(&ctx->md); 182 EVP_MD_CTX_cleanup(&ctx->md);
184 EVP_CIPHER_CTX_cleanup(&ctx->cipher); 183 EVP_CIPHER_CTX_cleanup(&ctx->cipher);
185 if (s != NULL) 184 free(s);
186 free(s);
187 return (ret); 185 return (ret);
188} 186}
189#endif 187#endif
diff --git a/src/lib/libcrypto/pem/pem_sign.c b/src/lib/libcrypto/pem/pem_sign.c
index 8a6bcc8d8d..bfe7823e3d 100644
--- a/src/lib/libcrypto/pem/pem_sign.c
+++ b/src/lib/libcrypto/pem/pem_sign.c
@@ -100,7 +100,6 @@ PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen,
100 100
101err: 101err:
102 /* ctx has been zeroed by EVP_SignFinal() */ 102 /* ctx has been zeroed by EVP_SignFinal() */
103 if (m != NULL) 103 free(m);
104 free(m);
105 return (ret); 104 return (ret);
106} 105}
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c
index 7eb00fd6e4..80ad087753 100644
--- a/src/lib/libcrypto/stack/stack.c
+++ b/src/lib/libcrypto/stack/stack.c
@@ -297,8 +297,7 @@ sk_free(_STACK *st)
297{ 297{
298 if (st == NULL) 298 if (st == NULL)
299 return; 299 return;
300 if (st->data != NULL) 300 free(st->data);
301 free(st->data);
302 free(st); 301 free(st);
303} 302}
304 303
diff --git a/src/lib/libcrypto/txt_db/txt_db.c b/src/lib/libcrypto/txt_db/txt_db.c
index e29a60316a..3f7fea6d2a 100644
--- a/src/lib/libcrypto/txt_db/txt_db.c
+++ b/src/lib/libcrypto/txt_db/txt_db.c
@@ -178,12 +178,9 @@ err:
178 if (ret != NULL) { 178 if (ret != NULL) {
179 if (ret->data != NULL) 179 if (ret->data != NULL)
180 sk_OPENSSL_PSTRING_free(ret->data); 180 sk_OPENSSL_PSTRING_free(ret->data);
181 if (ret->index != NULL) 181 free(ret->index);
182 free(ret->index); 182 free(ret->qual);
183 if (ret->qual != NULL) 183 free(ret);
184 free(ret->qual);
185 if (ret != NULL)
186 free(ret);
187 } 184 }
188 return (NULL); 185 return (NULL);
189 } else 186 } else
@@ -350,8 +347,7 @@ TXT_DB_free(TXT_DB *db)
350 lh_OPENSSL_STRING_free(db->index[i]); 347 lh_OPENSSL_STRING_free(db->index[i]);
351 free(db->index); 348 free(db->index);
352 } 349 }
353 if (db->qual != NULL) 350 free(db->qual);
354 free(db->qual);
355 if (db->data != NULL) { 351 if (db->data != NULL) {
356 for (i = sk_OPENSSL_PSTRING_num(db->data) - 1; i >= 0; i--) { 352 for (i = sk_OPENSSL_PSTRING_num(db->data) - 1; i >= 0; i--) {
357 /* check if any 'fields' have been allocated 353 /* check if any 'fields' have been allocated
@@ -361,8 +357,7 @@ TXT_DB_free(TXT_DB *db)
361 if (max == NULL) /* new row */ 357 if (max == NULL) /* new row */
362 { 358 {
363 for (n = 0; n < db->num_fields; n++) 359 for (n = 0; n < db->num_fields; n++)
364 if (p[n] != NULL) 360 free(p[n]);
365 free(p[n]);
366 } else { 361 } else {
367 for (n = 0; n < db->num_fields; n++) { 362 for (n = 0; n < db->num_fields; n++) {
368 if (((p[n] < (char *)p) || 363 if (((p[n] < (char *)p) ||
diff --git a/src/lib/libcrypto/x509v3/v3_prn.c b/src/lib/libcrypto/x509v3/v3_prn.c
index ff08534f9a..d06932aef1 100644
--- a/src/lib/libcrypto/x509v3/v3_prn.c
+++ b/src/lib/libcrypto/x509v3/v3_prn.c
@@ -143,8 +143,7 @@ X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent)
143 143
144err: 144err:
145 sk_CONF_VALUE_pop_free(nval, X509V3_conf_free); 145 sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
146 if (value) 146 free(value);
147 free(value);
148 if (method->it) 147 if (method->it)
149 ASN1_item_free(ext_str, ASN1_ITEM_ptr(method->it)); 148 ASN1_item_free(ext_str, ASN1_ITEM_ptr(method->it));
150 else 149 else
diff --git a/src/lib/libcrypto/x509v3/v3_utl.c b/src/lib/libcrypto/x509v3/v3_utl.c
index 0b389807dd..3134feff21 100644
--- a/src/lib/libcrypto/x509v3/v3_utl.c
+++ b/src/lib/libcrypto/x509v3/v3_utl.c
@@ -103,12 +103,9 @@ X509V3_add_value(const char *name, const char *value,
103 103
104err: 104err:
105 X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE); 105 X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE);
106 if (vtmp) 106 free(vtmp);
107 free(vtmp); 107 free(tname);
108 if (tname) 108 free(tvalue);
109 free(tname);
110 if (tvalue)
111 free(tvalue);
112 return 0; 109 return 0;
113} 110}
114 111
@@ -126,12 +123,9 @@ X509V3_conf_free(CONF_VALUE *conf)
126{ 123{
127 if (!conf) 124 if (!conf)
128 return; 125 return;
129 if (conf->name) 126 free(conf->name);
130 free(conf->name); 127 free(conf->value);
131 if (conf->value) 128 free(conf->section);
132 free(conf->value);
133 if (conf->section)
134 free(conf->section);
135 free(conf); 129 free(conf);
136} 130}
137 131
diff --git a/src/lib/libssl/src/crypto/asn1/a_bitstr.c b/src/lib/libssl/src/crypto/asn1/a_bitstr.c
index f3cce8b536..058a3ccc5f 100644
--- a/src/lib/libssl/src/crypto/asn1/a_bitstr.c
+++ b/src/lib/libssl/src/crypto/asn1/a_bitstr.c
@@ -165,8 +165,7 @@ c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, const unsigned char **pp, long len)
165 s = NULL; 165 s = NULL;
166 166
167 ret->length = (int)len; 167 ret->length = (int)len;
168 if (ret->data != NULL) 168 free(ret->data);
169 free(ret->data);
170 ret->data = s; 169 ret->data = s;
171 ret->type = V_ASN1_BIT_STRING; 170 ret->type = V_ASN1_BIT_STRING;
172 if (a != NULL) 171 if (a != NULL)
diff --git a/src/lib/libssl/src/crypto/asn1/a_bytes.c b/src/lib/libssl/src/crypto/asn1/a_bytes.c
index 6cc774e782..0d26e46681 100644
--- a/src/lib/libssl/src/crypto/asn1/a_bytes.c
+++ b/src/lib/libssl/src/crypto/asn1/a_bytes.c
@@ -110,8 +110,7 @@ d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp,
110 } else 110 } else
111 s = NULL; 111 s = NULL;
112 112
113 if (ret->data != NULL) 113 free(ret->data);
114 free(ret->data);
115 ret->length = (int)len; 114 ret->length = (int)len;
116 ret->data = s; 115 ret->data = s;
117 ret->type = tag; 116 ret->type = tag;
@@ -203,8 +202,7 @@ d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp,
203 } else { 202 } else {
204 if (len != 0) { 203 if (len != 0) {
205 if ((ret->length < len) || (ret->data == NULL)) { 204 if ((ret->length < len) || (ret->data == NULL)) {
206 if (ret->data != NULL) 205 free(ret->data);
207 free(ret->data);
208 ret->data = NULL; 206 ret->data = NULL;
209 s = malloc(len + 1); 207 s = malloc(len + 1);
210 if (s == NULL) { 208 if (s == NULL) {
@@ -218,8 +216,7 @@ d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp,
218 p += len; 216 p += len;
219 } else { 217 } else {
220 s = NULL; 218 s = NULL;
221 if (ret->data != NULL) 219 free(ret->data);
222 free(ret->data);
223 } 220 }
224 221
225 ret->length = (int)len; 222 ret->length = (int)len;
@@ -293,8 +290,7 @@ asn1_collate_primitive(ASN1_STRING *a, ASN1_const_CTX *c)
293 goto err; 290 goto err;
294 291
295 a->length = num; 292 a->length = num;
296 if (a->data != NULL) 293 free(a->data);
297 free(a->data);
298 a->data = (unsigned char *)b.data; 294 a->data = (unsigned char *)b.data;
299 if (os != NULL) 295 if (os != NULL)
300 ASN1_STRING_free(os); 296 ASN1_STRING_free(os);
@@ -304,7 +300,6 @@ err:
304 ASN1err(ASN1_F_ASN1_COLLATE_PRIMITIVE, c->error); 300 ASN1err(ASN1_F_ASN1_COLLATE_PRIMITIVE, c->error);
305 if (os != NULL) 301 if (os != NULL)
306 ASN1_STRING_free(os); 302 ASN1_STRING_free(os);
307 if (b.data != NULL) 303 free(b.data);
308 free(b.data);
309 return (0); 304 return (0);
310} 305}
diff --git a/src/lib/libssl/src/crypto/asn1/a_enum.c b/src/lib/libssl/src/crypto/asn1/a_enum.c
index aa28c7c8d7..b514288782 100644
--- a/src/lib/libssl/src/crypto/asn1/a_enum.c
+++ b/src/lib/libssl/src/crypto/asn1/a_enum.c
@@ -76,8 +76,7 @@ ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v)
76 76
77 a->type = V_ASN1_ENUMERATED; 77 a->type = V_ASN1_ENUMERATED;
78 if (a->length < (int)(sizeof(long) + 1)) { 78 if (a->length < (int)(sizeof(long) + 1)) {
79 if (a->data != NULL) 79 free(a->data);
80 free(a->data);
81 a->data = calloc(1, sizeof(long) + 1); 80 a->data = calloc(1, sizeof(long) + 1);
82 } 81 }
83 if (a->data == NULL) { 82 if (a->data == NULL) {
diff --git a/src/lib/libssl/src/crypto/asn1/a_gentm.c b/src/lib/libssl/src/crypto/asn1/a_gentm.c
index 7f8bc2fef7..e9881943a1 100644
--- a/src/lib/libssl/src/crypto/asn1/a_gentm.c
+++ b/src/lib/libssl/src/crypto/asn1/a_gentm.c
@@ -234,8 +234,7 @@ ASN1_GENERALIZEDTIME_adj_internal(ASN1_GENERALIZEDTIME *s, time_t t,
234 ERR_R_MALLOC_FAILURE); 234 ERR_R_MALLOC_FAILURE);
235 return (NULL); 235 return (NULL);
236 } 236 }
237 if (s->data != NULL) 237 free(s->data);
238 free(s->data);
239 s->data = (unsigned char *)p; 238 s->data = (unsigned char *)p;
240 } 239 }
241 240
diff --git a/src/lib/libssl/src/crypto/asn1/a_int.c b/src/lib/libssl/src/crypto/asn1/a_int.c
index 0559cce384..881f08a766 100644
--- a/src/lib/libssl/src/crypto/asn1/a_int.c
+++ b/src/lib/libssl/src/crypto/asn1/a_int.c
@@ -256,8 +256,7 @@ c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, long len)
256 memcpy(s, p, (int)len); 256 memcpy(s, p, (int)len);
257 } 257 }
258 258
259 if (ret->data != NULL) 259 free(ret->data);
260 free(ret->data);
261 ret->data = s; 260 ret->data = s;
262 ret->length = (int)len; 261 ret->length = (int)len;
263 if (a != NULL) 262 if (a != NULL)
@@ -324,8 +323,7 @@ d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, long length)
324 p += len; 323 p += len;
325 } 324 }
326 325
327 if (ret->data != NULL) 326 free(ret->data);
328 free(ret->data);
329 ret->data = s; 327 ret->data = s;
330 ret->length = (int)len; 328 ret->length = (int)len;
331 if (a != NULL) 329 if (a != NULL)
@@ -350,8 +348,7 @@ ASN1_INTEGER_set(ASN1_INTEGER *a, long v)
350 348
351 a->type = V_ASN1_INTEGER; 349 a->type = V_ASN1_INTEGER;
352 if (a->length < (int)(sizeof(long) + 1)) { 350 if (a->length < (int)(sizeof(long) + 1)) {
353 if (a->data != NULL) 351 free(a->data);
354 free(a->data);
355 a->data = calloc(1, sizeof(long) + 1); 352 a->data = calloc(1, sizeof(long) + 1);
356 } 353 }
357 if (a->data == NULL) { 354 if (a->data == NULL) {
diff --git a/src/lib/libssl/src/crypto/asn1/a_object.c b/src/lib/libssl/src/crypto/asn1/a_object.c
index b3a7e672ee..34221e0e98 100644
--- a/src/lib/libssl/src/crypto/asn1/a_object.c
+++ b/src/lib/libssl/src/crypto/asn1/a_object.c
@@ -310,8 +310,7 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len)
310 /* once detached we can change it */ 310 /* once detached we can change it */
311 if ((data == NULL) || (ret->length < len)) { 311 if ((data == NULL) || (ret->length < len)) {
312 ret->length = 0; 312 ret->length = 0;
313 if (data != NULL) 313 free(data);
314 free(data);
315 data = malloc(len ? (int)len : 1); 314 data = malloc(len ? (int)len : 1);
316 if (data == NULL) { 315 if (data == NULL) {
317 i = ERR_R_MALLOC_FAILURE; 316 i = ERR_R_MALLOC_FAILURE;
@@ -365,15 +364,12 @@ ASN1_OBJECT_free(ASN1_OBJECT *a)
365 if (a == NULL) 364 if (a == NULL)
366 return; 365 return;
367 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) { 366 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) {
368 if (a->sn != NULL) 367 free((void *)a->sn);
369 free((void *)a->sn); 368 free((void *)a->ln);
370 if (a->ln != NULL)
371 free((void *)a->ln);
372 a->sn = a->ln = NULL; 369 a->sn = a->ln = NULL;
373 } 370 }
374 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) { 371 if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) {
375 if (a->data != NULL) 372 free((void *)a->data);
376 free((void *)a->data);
377 a->data = NULL; 373 a->data = NULL;
378 a->length = 0; 374 a->length = 0;
379 } 375 }
diff --git a/src/lib/libssl/src/crypto/asn1/a_sign.c b/src/lib/libssl/src/crypto/asn1/a_sign.c
index 40c6809669..2705a0402e 100644
--- a/src/lib/libssl/src/crypto/asn1/a_sign.c
+++ b/src/lib/libssl/src/crypto/asn1/a_sign.c
@@ -218,8 +218,7 @@ ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, X509_ALGOR *algor2,
218 ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB); 218 ASN1err(ASN1_F_ASN1_ITEM_SIGN_CTX, ERR_R_EVP_LIB);
219 goto err; 219 goto err;
220 } 220 }
221 if (signature->data != NULL) 221 free(signature->data);
222 free(signature->data);
223 signature->data = buf_out; 222 signature->data = buf_out;
224 buf_out = NULL; 223 buf_out = NULL;
225 signature->length = outl; 224 signature->length = outl;
diff --git a/src/lib/libssl/src/crypto/asn1/a_utctm.c b/src/lib/libssl/src/crypto/asn1/a_utctm.c
index 35f2b7fd66..b8e5b7afc1 100644
--- a/src/lib/libssl/src/crypto/asn1/a_utctm.c
+++ b/src/lib/libssl/src/crypto/asn1/a_utctm.c
@@ -177,8 +177,7 @@ ASN1_UTCTIME_adj_internal(ASN1_UTCTIME *s, time_t t, int offset_day,
177 ASN1err(ASN1_F_ASN1_UTCTIME_ADJ, ERR_R_MALLOC_FAILURE); 177 ASN1err(ASN1_F_ASN1_UTCTIME_ADJ, ERR_R_MALLOC_FAILURE);
178 return (NULL); 178 return (NULL);
179 } 179 }
180 if (s->data != NULL) 180 free(s->data);
181 free(s->data);
182 s->data = (unsigned char *)p; 181 s->data = (unsigned char *)p;
183 } 182 }
184 183
diff --git a/src/lib/libssl/src/crypto/asn1/asn1_gen.c b/src/lib/libssl/src/crypto/asn1/asn1_gen.c
index 7abbac6059..8ab8944d64 100644
--- a/src/lib/libssl/src/crypto/asn1/asn1_gen.c
+++ b/src/lib/libssl/src/crypto/asn1/asn1_gen.c
@@ -474,8 +474,7 @@ asn1_multi(int utype, const char *section, X509V3_CTX *cnf)
474 der = NULL; 474 der = NULL;
475 475
476bad: 476bad:
477 if (der) 477 free(der);
478 free(der);
479 if (sk) 478 if (sk)
480 sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free); 479 sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free);
481 if (sect) 480 if (sect)
diff --git a/src/lib/libssl/src/crypto/asn1/t_x509.c b/src/lib/libssl/src/crypto/asn1/t_x509.c
index efba93adeb..f1c045e0e6 100644
--- a/src/lib/libssl/src/crypto/asn1/t_x509.c
+++ b/src/lib/libssl/src/crypto/asn1/t_x509.c
@@ -245,8 +245,7 @@ X509_print_ex(BIO *bp, X509 *x, unsigned long nmflags, unsigned long cflag)
245 ret = 1; 245 ret = 1;
246 246
247err: 247err:
248 if (m != NULL) 248 free(m);
249 free(m);
250 return (ret); 249 return (ret);
251} 250}
252 251
@@ -294,8 +293,7 @@ int X509_ocspid_print (BIO *bp, X509 *x)
294 return (1); 293 return (1);
295 294
296err: 295err:
297 if (der != NULL) 296 free(der);
298 free(der);
299 return (0); 297 return (0);
300} 298}
301 299
diff --git a/src/lib/libssl/src/crypto/asn1/x_info.c b/src/lib/libssl/src/crypto/asn1/x_info.c
index 2d1bf0d22d..b17d7ace11 100644
--- a/src/lib/libssl/src/crypto/asn1/x_info.c
+++ b/src/lib/libssl/src/crypto/asn1/x_info.c
@@ -102,8 +102,7 @@ X509_INFO_free(X509_INFO *x)
102 X509_CRL_free(x->crl); 102 X509_CRL_free(x->crl);
103 if (x->x_pkey != NULL) 103 if (x->x_pkey != NULL)
104 X509_PKEY_free(x->x_pkey); 104 X509_PKEY_free(x->x_pkey);
105 if (x->enc_data != NULL) 105 free(x->enc_data);
106 free(x->enc_data);
107 free(x); 106 free(x);
108} 107}
109 108
diff --git a/src/lib/libssl/src/crypto/asn1/x_x509.c b/src/lib/libssl/src/crypto/asn1/x_x509.c
index e93d97d2c4..7053bb87eb 100644
--- a/src/lib/libssl/src/crypto/asn1/x_x509.c
+++ b/src/lib/libssl/src/crypto/asn1/x_x509.c
@@ -105,8 +105,7 @@ x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
105 break; 105 break;
106 106
107 case ASN1_OP_D2I_POST: 107 case ASN1_OP_D2I_POST:
108 if (ret->name != NULL) 108 free(ret->name);
109 free(ret->name);
110 ret->name = X509_NAME_oneline(ret->cert_info->subject, NULL, 0); 109 ret->name = X509_NAME_oneline(ret->cert_info->subject, NULL, 0);
111 break; 110 break;
112 111
@@ -123,8 +122,7 @@ x509_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg)
123 sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free); 122 sk_IPAddressFamily_pop_free(ret->rfc3779_addr, IPAddressFamily_free);
124 ASIdentifiers_free(ret->rfc3779_asid); 123 ASIdentifiers_free(ret->rfc3779_asid);
125#endif 124#endif
126 if (ret->name != NULL) 125 free(ret->name);
127 free(ret->name);
128 ret->name = NULL; 126 ret->name = NULL;
129 break; 127 break;
130 } 128 }
diff --git a/src/lib/libssl/src/crypto/bio/b_sock.c b/src/lib/libssl/src/crypto/bio/b_sock.c
index a9c4408a09..c7a10ca348 100644
--- a/src/lib/libssl/src/crypto/bio/b_sock.c
+++ b/src/lib/libssl/src/crypto/bio/b_sock.c
@@ -435,8 +435,7 @@ again:
435 } 435 }
436 ret = 1; 436 ret = 1;
437err: 437err:
438 if (str != NULL) 438 free(str);
439 free(str);
440 if ((ret == 0) && (s != -1)) { 439 if ((ret == 0) && (s != -1)) {
441 close(s); 440 close(s);
442 s = -1; 441 s = -1;
diff --git a/src/lib/libssl/src/crypto/bio/bf_buff.c b/src/lib/libssl/src/crypto/bio/bf_buff.c
index e96da40a58..0866c8c7a3 100644
--- a/src/lib/libssl/src/crypto/bio/bf_buff.c
+++ b/src/lib/libssl/src/crypto/bio/bf_buff.c
@@ -130,10 +130,8 @@ buffer_free(BIO *a)
130 if (a == NULL) 130 if (a == NULL)
131 return (0); 131 return (0);
132 b = (BIO_F_BUFFER_CTX *)a->ptr; 132 b = (BIO_F_BUFFER_CTX *)a->ptr;
133 if (b->ibuf != NULL) 133 free(b->ibuf);
134 free(b->ibuf); 134 free(b->obuf);
135 if (b->obuf != NULL)
136 free(b->obuf);
137 free(a->ptr); 135 free(a->ptr);
138 a->ptr = NULL; 136 a->ptr = NULL;
139 a->init = 0; 137 a->init = 0;
@@ -342,8 +340,7 @@ buffer_ctrl(BIO *b, int cmd, long num, void *ptr)
342 p1 = malloc((int)num); 340 p1 = malloc((int)num);
343 if (p1 == NULL) 341 if (p1 == NULL)
344 goto malloc_error; 342 goto malloc_error;
345 if (ctx->ibuf != NULL) 343 free(ctx->ibuf);
346 free(ctx->ibuf);
347 ctx->ibuf = p1; 344 ctx->ibuf = p1;
348 } 345 }
349 ctx->ibuf_off = 0; 346 ctx->ibuf_off = 0;
diff --git a/src/lib/libssl/src/crypto/bio/bf_lbuf.c b/src/lib/libssl/src/crypto/bio/bf_lbuf.c
index 54c370d038..42c0e1dca5 100644
--- a/src/lib/libssl/src/crypto/bio/bf_lbuf.c
+++ b/src/lib/libssl/src/crypto/bio/bf_lbuf.c
@@ -131,8 +131,7 @@ linebuffer_free(BIO *a)
131 if (a == NULL) 131 if (a == NULL)
132 return (0); 132 return (0);
133 b = (BIO_LINEBUFFER_CTX *)a->ptr; 133 b = (BIO_LINEBUFFER_CTX *)a->ptr;
134 if (b->obuf != NULL) 134 free(b->obuf);
135 free(b->obuf);
136 free(a->ptr); 135 free(a->ptr);
137 a->ptr = NULL; 136 a->ptr = NULL;
138 a->init = 0; 137 a->init = 0;
diff --git a/src/lib/libssl/src/crypto/bio/bf_nbio.c b/src/lib/libssl/src/crypto/bio/bf_nbio.c
index 5a0f6b276a..9b0ec7d41f 100644
--- a/src/lib/libssl/src/crypto/bio/bf_nbio.c
+++ b/src/lib/libssl/src/crypto/bio/bf_nbio.c
@@ -119,8 +119,7 @@ nbiof_free(BIO *a)
119{ 119{
120 if (a == NULL) 120 if (a == NULL)
121 return (0); 121 return (0);
122 if (a->ptr != NULL) 122 free(a->ptr);
123 free(a->ptr);
124 a->ptr = NULL; 123 a->ptr = NULL;
125 a->init = 0; 124 a->init = 0;
126 a->flags = 0; 125 a->flags = 0;
diff --git a/src/lib/libssl/src/crypto/bio/bss_acpt.c b/src/lib/libssl/src/crypto/bio/bss_acpt.c
index 943d3d9d96..d246aba681 100644
--- a/src/lib/libssl/src/crypto/bio/bss_acpt.c
+++ b/src/lib/libssl/src/crypto/bio/bss_acpt.c
@@ -148,10 +148,8 @@ BIO_ACCEPT_free(BIO_ACCEPT *a)
148 if (a == NULL) 148 if (a == NULL)
149 return; 149 return;
150 150
151 if (a->param_addr != NULL) 151 free(a->param_addr);
152 free(a->param_addr); 152 free(a->addr);
153 if (a->addr != NULL)
154 free(a->addr);
155 if (a->bio_chain != NULL) 153 if (a->bio_chain != NULL)
156 BIO_free(a->bio_chain); 154 BIO_free(a->bio_chain);
157 free(a); 155 free(a);
@@ -352,8 +350,7 @@ acpt_ctrl(BIO *b, int cmd, long num, void *ptr)
352 if (ptr != NULL) { 350 if (ptr != NULL) {
353 if (num == 0) { 351 if (num == 0) {
354 b->init = 1; 352 b->init = 1;
355 if (data->param_addr != NULL) 353 free(data->param_addr);
356 free(data->param_addr);
357 data->param_addr = BUF_strdup(ptr); 354 data->param_addr = BUF_strdup(ptr);
358 } else if (num == 1) { 355 } else if (num == 1) {
359 data->accept_nbio = (ptr != NULL); 356 data->accept_nbio = (ptr != NULL);
diff --git a/src/lib/libssl/src/crypto/bio/bss_bio.c b/src/lib/libssl/src/crypto/bio/bss_bio.c
index eda2e2a55c..519002beed 100644
--- a/src/lib/libssl/src/crypto/bio/bss_bio.c
+++ b/src/lib/libssl/src/crypto/bio/bss_bio.c
@@ -160,12 +160,8 @@ bio_free(BIO *bio)
160 if (b->peer) 160 if (b->peer)
161 bio_destroy_pair(bio); 161 bio_destroy_pair(bio);
162 162
163 if (b->buf != NULL) { 163 free(b->buf);
164 free(b->buf);
165 }
166
167 free(b); 164 free(b);
168
169 return 1; 165 return 1;
170} 166}
171 167
diff --git a/src/lib/libssl/src/crypto/bio/bss_conn.c b/src/lib/libssl/src/crypto/bio/bss_conn.c
index 7ed8f1fe31..a31e5a170b 100644
--- a/src/lib/libssl/src/crypto/bio/bss_conn.c
+++ b/src/lib/libssl/src/crypto/bio/bss_conn.c
@@ -147,8 +147,7 @@ conn_state(BIO *b, BIO_CONNECT *c)
147 *q = '\0'; 147 *q = '\0';
148 break; 148 break;
149 } 149 }
150 if (c->param_port != NULL) 150 free(c->param_port);
151 free(c->param_port);
152 c->param_port = BUF_strdup(p); 151 c->param_port = BUF_strdup(p);
153 } 152 }
154 } 153 }
@@ -315,10 +314,8 @@ BIO_CONNECT_free(BIO_CONNECT *a)
315 if (a == NULL) 314 if (a == NULL)
316 return; 315 return;
317 316
318 if (a->param_hostname != NULL) 317 free(a->param_hostname);
319 free(a->param_hostname); 318 free(a->param_port);
320 if (a->param_port != NULL)
321 free(a->param_port);
322 free(a); 319 free(a);
323} 320}
324 321
@@ -469,12 +466,10 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
469 if (ptr != NULL) { 466 if (ptr != NULL) {
470 b->init = 1; 467 b->init = 1;
471 if (num == 0) { 468 if (num == 0) {
472 if (data->param_hostname != NULL) 469 free(data->param_hostname);
473 free(data->param_hostname);
474 data->param_hostname = BUF_strdup(ptr); 470 data->param_hostname = BUF_strdup(ptr);
475 } else if (num == 1) { 471 } else if (num == 1) {
476 if (data->param_port != NULL) 472 free(data->param_port);
477 free(data->param_port);
478 data->param_port = BUF_strdup(ptr); 473 data->param_port = BUF_strdup(ptr);
479 } else if (num == 2) { 474 } else if (num == 2) {
480 char buf[16]; 475 char buf[16];
@@ -482,8 +477,7 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
482 477
483 snprintf(buf, sizeof buf, "%d.%d.%d.%d", 478 snprintf(buf, sizeof buf, "%d.%d.%d.%d",
484 p[0], p[1], p[2], p[3]); 479 p[0], p[1], p[2], p[3]);
485 if (data->param_hostname != NULL) 480 free(data->param_hostname);
486 free(data->param_hostname);
487 data->param_hostname = BUF_strdup(buf); 481 data->param_hostname = BUF_strdup(buf);
488 memcpy(&(data->ip[0]), ptr, 4); 482 memcpy(&(data->ip[0]), ptr, 4);
489 } else if (num == 3) { 483 } else if (num == 3) {
@@ -491,8 +485,7 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr)
491 485
492 snprintf(buf, sizeof buf, "%d", 486 snprintf(buf, sizeof buf, "%d",
493 *(int *)ptr); 487 *(int *)ptr);
494 if (data->param_port != NULL) 488 free(data->param_port);
495 free(data->param_port);
496 data->param_port = BUF_strdup(buf); 489 data->param_port = BUF_strdup(buf);
497 data->port= *(int *)ptr; 490 data->port= *(int *)ptr;
498 } 491 }
diff --git a/src/lib/libssl/src/crypto/bio/bss_dgram.c b/src/lib/libssl/src/crypto/bio/bss_dgram.c
index 8f7439c51e..9160fe4018 100644
--- a/src/lib/libssl/src/crypto/bio/bss_dgram.c
+++ b/src/lib/libssl/src/crypto/bio/bss_dgram.c
@@ -217,8 +217,7 @@ dgram_free(BIO *a)
217 return 0; 217 return 0;
218 218
219 data = (bio_dgram_data *)a->ptr; 219 data = (bio_dgram_data *)a->ptr;
220 if (data != NULL) 220 free(data);
221 free(data);
222 221
223 return (1); 222 return (1);
224} 223}
@@ -830,8 +829,7 @@ dgram_sctp_free(BIO *a)
830 return 0; 829 return 0;
831 830
832 data = (bio_dgram_sctp_data *)a->ptr; 831 data = (bio_dgram_sctp_data *)a->ptr;
833 if (data != NULL) 832 free(data);
834 free(data);
835 833
836 return (1); 834 return (1);
837} 835}
diff --git a/src/lib/libssl/src/crypto/bn/bn_print.c b/src/lib/libssl/src/crypto/bn/bn_print.c
index ea5fa5c3da..ad3a847f01 100644
--- a/src/lib/libssl/src/crypto/bn/bn_print.c
+++ b/src/lib/libssl/src/crypto/bn/bn_print.c
@@ -157,8 +157,7 @@ BN_bn2dec(const BIGNUM *a)
157 ok = 1; 157 ok = 1;
158 158
159err: 159err:
160 if (bn_data != NULL) 160 free(bn_data);
161 free(bn_data);
162 if (t != NULL) 161 if (t != NULL)
163 BN_free(t); 162 BN_free(t);
164 if (!ok && buf) { 163 if (!ok && buf) {
diff --git a/src/lib/libssl/src/crypto/conf/conf_api.c b/src/lib/libssl/src/crypto/conf/conf_api.c
index 98e058dad4..41c5b05fcb 100644
--- a/src/lib/libssl/src/crypto/conf/conf_api.c
+++ b/src/lib/libssl/src/crypto/conf/conf_api.c
@@ -300,8 +300,7 @@ err:
300 if (!ok) { 300 if (!ok) {
301 if (sk != NULL) 301 if (sk != NULL)
302 sk_CONF_VALUE_free(sk); 302 sk_CONF_VALUE_free(sk);
303 if (v != NULL) 303 free(v);
304 free(v);
305 v = NULL; 304 v = NULL;
306 } 305 }
307 return (v); 306 return (v);
diff --git a/src/lib/libssl/src/crypto/conf/conf_def.c b/src/lib/libssl/src/crypto/conf/conf_def.c
index b3c75e1a9e..b550623e57 100644
--- a/src/lib/libssl/src/crypto/conf/conf_def.c
+++ b/src/lib/libssl/src/crypto/conf/conf_def.c
@@ -416,15 +416,13 @@ again:
416 } 416 }
417 if (buff != NULL) 417 if (buff != NULL)
418 BUF_MEM_free(buff); 418 BUF_MEM_free(buff);
419 if (section != NULL) 419 free(section);
420 free(section);
421 return (1); 420 return (1);
422 421
423err: 422err:
424 if (buff != NULL) 423 if (buff != NULL)
425 BUF_MEM_free(buff); 424 BUF_MEM_free(buff);
426 if (section != NULL) 425 free(section);
427 free(section);
428 if (line != NULL) 426 if (line != NULL)
429 *line = eline; 427 *line = eline;
430 ERR_asprintf_error_data("line %ld", eline); 428 ERR_asprintf_error_data("line %ld", eline);
@@ -433,12 +431,9 @@ err:
433 conf->data = NULL; 431 conf->data = NULL;
434 } 432 }
435 if (v != NULL) { 433 if (v != NULL) {
436 if (v->name != NULL) 434 free(v->name);
437 free(v->name); 435 free(v->value);
438 if (v->value != NULL) 436 free(v);
439 free(v->value);
440 if (v != NULL)
441 free(v);
442 } 437 }
443 return (0); 438 return (0);
444} 439}
@@ -615,8 +610,7 @@ str_copy(CONF *conf, char *section, char **pto, char *from)
615 buf->data[to++] = *(from++); 610 buf->data[to++] = *(from++);
616 } 611 }
617 buf->data[to]='\0'; 612 buf->data[to]='\0';
618 if (*pto != NULL) 613 free(*pto);
619 free(*pto);
620 *pto = buf->data; 614 *pto = buf->data;
621 free(buf); 615 free(buf);
622 return (1); 616 return (1);
diff --git a/src/lib/libssl/src/crypto/dh/dh_ameth.c b/src/lib/libssl/src/crypto/dh/dh_ameth.c
index 40e0202bff..119ac615a6 100644
--- a/src/lib/libssl/src/crypto/dh/dh_ameth.c
+++ b/src/lib/libssl/src/crypto/dh/dh_ameth.c
@@ -275,8 +275,7 @@ static int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
275 return 1; 275 return 1;
276 276
277err: 277err:
278 if (dp != NULL) 278 free(dp);
279 free(dp);
280 if (params != NULL) 279 if (params != NULL)
281 ASN1_STRING_free(params); 280 ASN1_STRING_free(params);
282 if (prkey != NULL) 281 if (prkey != NULL)
diff --git a/src/lib/libssl/src/crypto/dsa/dsa_ameth.c b/src/lib/libssl/src/crypto/dsa/dsa_ameth.c
index 16617d40f5..e2c3980e56 100644
--- a/src/lib/libssl/src/crypto/dsa/dsa_ameth.c
+++ b/src/lib/libssl/src/crypto/dsa/dsa_ameth.c
@@ -342,8 +342,7 @@ static int dsa_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
342 return 1; 342 return 1;
343 343
344err: 344err:
345 if (dp != NULL) 345 free(dp);
346 free(dp);
347 if (params != NULL) 346 if (params != NULL)
348 ASN1_STRING_free(params); 347 ASN1_STRING_free(params);
349 if (prkey != NULL) 348 if (prkey != NULL)
diff --git a/src/lib/libssl/src/crypto/dso/dso_dlfcn.c b/src/lib/libssl/src/crypto/dso/dso_dlfcn.c
index bebfdcdbc4..87ebdb660d 100644
--- a/src/lib/libssl/src/crypto/dso/dso_dlfcn.c
+++ b/src/lib/libssl/src/crypto/dso/dso_dlfcn.c
@@ -146,8 +146,7 @@ dlfcn_load(DSO *dso)
146 146
147err: 147err:
148 /* Cleanup! */ 148 /* Cleanup! */
149 if (filename != NULL) 149 free(filename);
150 free(filename);
151 if (ptr != NULL) 150 if (ptr != NULL)
152 dlclose(ptr); 151 dlclose(ptr);
153 return (0); 152 return (0);
diff --git a/src/lib/libssl/src/crypto/dso/dso_lib.c b/src/lib/libssl/src/crypto/dso/dso_lib.c
index 3859be7b42..fa1c3c2b54 100644
--- a/src/lib/libssl/src/crypto/dso/dso_lib.c
+++ b/src/lib/libssl/src/crypto/dso/dso_lib.c
@@ -156,11 +156,8 @@ DSO_free(DSO *dso)
156 } 156 }
157 157
158 sk_void_free(dso->meth_data); 158 sk_void_free(dso->meth_data);
159 if (dso->filename != NULL) 159 free(dso->filename);
160 free(dso->filename); 160 free(dso->loaded_filename);
161 if (dso->loaded_filename != NULL)
162 free(dso->loaded_filename);
163
164 free(dso); 161 free(dso);
165 return (1); 162 return (1);
166} 163}
diff --git a/src/lib/libssl/src/crypto/ec/ec_ameth.c b/src/lib/libssl/src/crypto/ec/ec_ameth.c
index b41879c431..ec074329f2 100644
--- a/src/lib/libssl/src/crypto/ec/ec_ameth.c
+++ b/src/lib/libssl/src/crypto/ec/ec_ameth.c
@@ -492,8 +492,7 @@ err:
492 BN_free(order); 492 BN_free(order);
493 if (ctx) 493 if (ctx)
494 BN_CTX_free(ctx); 494 BN_CTX_free(ctx);
495 if (buffer != NULL) 495 free(buffer);
496 free(buffer);
497 return (ret); 496 return (ret);
498} 497}
499 498
diff --git a/src/lib/libssl/src/crypto/ec/ec_asn1.c b/src/lib/libssl/src/crypto/ec/ec_asn1.c
index 2409cd0886..342db2a992 100644
--- a/src/lib/libssl/src/crypto/ec/ec_asn1.c
+++ b/src/lib/libssl/src/crypto/ec/ec_asn1.c
@@ -805,8 +805,7 @@ ec_asn1_parameters2group(const ECPARAMETERS * params)
805 } 805 }
806 /* extract seed (optional) */ 806 /* extract seed (optional) */
807 if (params->curve->seed != NULL) { 807 if (params->curve->seed != NULL) {
808 if (ret->seed != NULL) 808 free(ret->seed);
809 free(ret->seed);
810 if (!(ret->seed = malloc(params->curve->seed->length))) { 809 if (!(ret->seed = malloc(params->curve->seed->length))) {
811 ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP, 810 ECerr(EC_F_EC_ASN1_PARAMETERS2GROUP,
812 ERR_R_MALLOC_FAILURE); 811 ERR_R_MALLOC_FAILURE);
diff --git a/src/lib/libssl/src/crypto/ec/ec_mult.c b/src/lib/libssl/src/crypto/ec/ec_mult.c
index 0fd0cab2f1..8894a8f907 100644
--- a/src/lib/libssl/src/crypto/ec/ec_mult.c
+++ b/src/lib/libssl/src/crypto/ec/ec_mult.c
@@ -683,10 +683,8 @@ err:
683 BN_CTX_free(new_ctx); 683 BN_CTX_free(new_ctx);
684 if (tmp != NULL) 684 if (tmp != NULL)
685 EC_POINT_free(tmp); 685 EC_POINT_free(tmp);
686 if (wsize != NULL) 686 free(wsize);
687 free(wsize); 687 free(wNAF_len);
688 if (wNAF_len != NULL)
689 free(wNAF_len);
690 if (wNAF != NULL) { 688 if (wNAF != NULL) {
691 signed char **w; 689 signed char **w;
692 690
@@ -698,12 +696,9 @@ err:
698 if (val != NULL) { 696 if (val != NULL) {
699 for (v = val; *v != NULL; v++) 697 for (v = val; *v != NULL; v++)
700 EC_POINT_clear_free(*v); 698 EC_POINT_clear_free(*v);
701
702 free(val); 699 free(val);
703 } 700 }
704 if (val_sub != NULL) { 701 free(val_sub);
705 free(val_sub);
706 }
707 return ret; 702 return ret;
708} 703}
709 704
diff --git a/src/lib/libssl/src/crypto/ec/eck_prn.c b/src/lib/libssl/src/crypto/ec/eck_prn.c
index 3f2973e5b6..60b00fddb3 100644
--- a/src/lib/libssl/src/crypto/ec/eck_prn.c
+++ b/src/lib/libssl/src/crypto/ec/eck_prn.c
@@ -325,8 +325,7 @@ err:
325 BN_free(cofactor); 325 BN_free(cofactor);
326 if (ctx) 326 if (ctx)
327 BN_CTX_free(ctx); 327 BN_CTX_free(ctx);
328 if (buffer != NULL) 328 free(buffer);
329 free(buffer);
330 return (ret); 329 return (ret);
331} 330}
332 331
diff --git a/src/lib/libssl/src/crypto/ec/ecp_nistp224.c b/src/lib/libssl/src/crypto/ec/ecp_nistp224.c
index 6e9b9fac3c..afe25853e6 100644
--- a/src/lib/libssl/src/crypto/ec/ecp_nistp224.c
+++ b/src/lib/libssl/src/crypto/ec/ecp_nistp224.c
@@ -1546,12 +1546,9 @@ err:
1546 EC_POINT_free(generator); 1546 EC_POINT_free(generator);
1547 if (new_ctx != NULL) 1547 if (new_ctx != NULL)
1548 BN_CTX_free(new_ctx); 1548 BN_CTX_free(new_ctx);
1549 if (secrets != NULL) 1549 free(secrets);
1550 free(secrets); 1550 free(pre_comp);
1551 if (pre_comp != NULL) 1551 free(tmp_felems);
1552 free(pre_comp);
1553 if (tmp_felems != NULL)
1554 free(tmp_felems);
1555 return ret; 1552 return ret;
1556} 1553}
1557 1554
diff --git a/src/lib/libssl/src/crypto/ec/ecp_nistp256.c b/src/lib/libssl/src/crypto/ec/ecp_nistp256.c
index b2398e106c..7fe7be27de 100644
--- a/src/lib/libssl/src/crypto/ec/ecp_nistp256.c
+++ b/src/lib/libssl/src/crypto/ec/ecp_nistp256.c
@@ -2101,12 +2101,9 @@ err:
2101 EC_POINT_free(generator); 2101 EC_POINT_free(generator);
2102 if (new_ctx != NULL) 2102 if (new_ctx != NULL)
2103 BN_CTX_free(new_ctx); 2103 BN_CTX_free(new_ctx);
2104 if (secrets != NULL) 2104 free(secrets);
2105 free(secrets); 2105 free(pre_comp);
2106 if (pre_comp != NULL) 2106 free(tmp_smallfelems);
2107 free(pre_comp);
2108 if (tmp_smallfelems != NULL)
2109 free(tmp_smallfelems);
2110 return ret; 2107 return ret;
2111} 2108}
2112 2109
diff --git a/src/lib/libssl/src/crypto/ec/ecp_nistp521.c b/src/lib/libssl/src/crypto/ec/ecp_nistp521.c
index 083e017cdc..5d5a747ee8 100644
--- a/src/lib/libssl/src/crypto/ec/ecp_nistp521.c
+++ b/src/lib/libssl/src/crypto/ec/ecp_nistp521.c
@@ -1988,12 +1988,9 @@ err:
1988 EC_POINT_free(generator); 1988 EC_POINT_free(generator);
1989 if (new_ctx != NULL) 1989 if (new_ctx != NULL)
1990 BN_CTX_free(new_ctx); 1990 BN_CTX_free(new_ctx);
1991 if (secrets != NULL) 1991 free(secrets);
1992 free(secrets); 1992 free(pre_comp);
1993 if (pre_comp != NULL) 1993 free(tmp_felems);
1994 free(pre_comp);
1995 if (tmp_felems != NULL)
1996 free(tmp_felems);
1997 return ret; 1994 return ret;
1998} 1995}
1999 1996
diff --git a/src/lib/libssl/src/crypto/engine/eng_dyn.c b/src/lib/libssl/src/crypto/engine/eng_dyn.c
index f59d768350..e2de4603ee 100644
--- a/src/lib/libssl/src/crypto/engine/eng_dyn.c
+++ b/src/lib/libssl/src/crypto/engine/eng_dyn.c
@@ -169,10 +169,8 @@ static void dynamic_data_ctx_free_func(void *parent, void *ptr,
169 dynamic_data_ctx *ctx = (dynamic_data_ctx *)ptr; 169 dynamic_data_ctx *ctx = (dynamic_data_ctx *)ptr;
170 if(ctx->dynamic_dso) 170 if(ctx->dynamic_dso)
171 DSO_free(ctx->dynamic_dso); 171 DSO_free(ctx->dynamic_dso);
172 if(ctx->DYNAMIC_LIBNAME) 172 free((void *)ctx->DYNAMIC_LIBNAME);
173 free((void*)ctx->DYNAMIC_LIBNAME); 173 free((void *)ctx->engine_id);
174 if(ctx->engine_id)
175 free((void*)ctx->engine_id);
176 if(ctx->dirs) 174 if(ctx->dirs)
177 sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str); 175 sk_OPENSSL_STRING_pop_free(ctx->dirs, int_free_str);
178 free(ctx); 176 free(ctx);
@@ -335,8 +333,7 @@ static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void))
335 /* a NULL 'p' or a string of zero-length is the same thing */ 333 /* a NULL 'p' or a string of zero-length is the same thing */
336 if(p && (strlen((const char *)p) < 1)) 334 if(p && (strlen((const char *)p) < 1))
337 p = NULL; 335 p = NULL;
338 if(ctx->DYNAMIC_LIBNAME) 336 free((void *)ctx->DYNAMIC_LIBNAME);
339 free((void*)ctx->DYNAMIC_LIBNAME);
340 if(p) 337 if(p)
341 ctx->DYNAMIC_LIBNAME = BUF_strdup(p); 338 ctx->DYNAMIC_LIBNAME = BUF_strdup(p);
342 else 339 else
@@ -349,8 +346,7 @@ static int dynamic_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void))
349 /* a NULL 'p' or a string of zero-length is the same thing */ 346 /* a NULL 'p' or a string of zero-length is the same thing */
350 if(p && (strlen((const char *)p) < 1)) 347 if(p && (strlen((const char *)p) < 1))
351 p = NULL; 348 p = NULL;
352 if(ctx->engine_id) 349 free((void *)ctx->engine_id);
353 free((void*)ctx->engine_id);
354 if(p) 350 if(p)
355 ctx->engine_id = BUF_strdup(p); 351 ctx->engine_id = BUF_strdup(p);
356 else 352 else
diff --git a/src/lib/libssl/src/crypto/objects/obj_dat.c b/src/lib/libssl/src/crypto/objects/obj_dat.c
index e31940da45..a71959222f 100644
--- a/src/lib/libssl/src/crypto/objects/obj_dat.c
+++ b/src/lib/libssl/src/crypto/objects/obj_dat.c
@@ -294,8 +294,7 @@ OBJ_add_object(const ASN1_OBJECT *obj)
294 ao[i]->obj = o; 294 ao[i]->obj = o;
295 aop = lh_ADDED_OBJ_insert(added, ao[i]); 295 aop = lh_ADDED_OBJ_insert(added, ao[i]);
296 /* memory leak, buit should not normally matter */ 296 /* memory leak, buit should not normally matter */
297 if (aop != NULL) 297 free(aop);
298 free(aop);
299 } 298 }
300 } 299 }
301 o->flags &= ~(ASN1_OBJECT_FLAG_DYNAMIC | 300 o->flags &= ~(ASN1_OBJECT_FLAG_DYNAMIC |
@@ -308,10 +307,8 @@ err2:
308 OBJerr(OBJ_F_OBJ_ADD_OBJECT, ERR_R_MALLOC_FAILURE); 307 OBJerr(OBJ_F_OBJ_ADD_OBJECT, ERR_R_MALLOC_FAILURE);
309err: 308err:
310 for (i = ADDED_DATA; i <= ADDED_NID; i++) 309 for (i = ADDED_DATA; i <= ADDED_NID; i++)
311 if (ao[i] != NULL) 310 free(ao[i]);
312 free(ao[i]); 311 free(o);
313 if (o != NULL)
314 free(o);
315 return (NID_undef); 312 return (NID_undef);
316} 313}
317 314
diff --git a/src/lib/libssl/src/crypto/objects/obj_lib.c b/src/lib/libssl/src/crypto/objects/obj_lib.c
index 57f0b28cc0..25bc8fb5ee 100644
--- a/src/lib/libssl/src/crypto/objects/obj_lib.c
+++ b/src/lib/libssl/src/crypto/objects/obj_lib.c
@@ -114,14 +114,10 @@ OBJ_dup(const ASN1_OBJECT *o)
114 114
115err: 115err:
116 OBJerr(OBJ_F_OBJ_DUP, ERR_R_MALLOC_FAILURE); 116 OBJerr(OBJ_F_OBJ_DUP, ERR_R_MALLOC_FAILURE);
117 if (ln != NULL) 117 free(ln);
118 free(ln); 118 free(sn);
119 if (sn != NULL) 119 free(data);
120 free(sn); 120 free(r);
121 if (data != NULL)
122 free(data);
123 if (r != NULL)
124 free(r);
125 return (NULL); 121 return (NULL);
126} 122}
127 123
diff --git a/src/lib/libssl/src/crypto/pem/pem_info.c b/src/lib/libssl/src/crypto/pem/pem_info.c
index 40600e30f3..7605c7653c 100644
--- a/src/lib/libssl/src/crypto/pem/pem_info.c
+++ b/src/lib/libssl/src/crypto/pem/pem_info.c
@@ -256,12 +256,9 @@ start:
256 } else { 256 } else {
257 /* unknown */ 257 /* unknown */
258 } 258 }
259 if (name != NULL) 259 free(name);
260 free(name); 260 free(header);
261 if (header != NULL) 261 free(data);
262 free(header);
263 if (data != NULL)
264 free(data);
265 name = NULL; 262 name = NULL;
266 header = NULL; 263 header = NULL;
267 data = NULL; 264 data = NULL;
@@ -291,12 +288,9 @@ err:
291 ret = NULL; 288 ret = NULL;
292 } 289 }
293 290
294 if (name != NULL) 291 free(name);
295 free(name); 292 free(header);
296 if (header != NULL) 293 free(data);
297 free(header);
298 if (data != NULL)
299 free(data);
300 return (ret); 294 return (ret);
301} 295}
302 296
diff --git a/src/lib/libssl/src/crypto/pem/pem_seal.c b/src/lib/libssl/src/crypto/pem/pem_seal.c
index a7b9379223..e6e73dd23d 100644
--- a/src/lib/libssl/src/crypto/pem/pem_seal.c
+++ b/src/lib/libssl/src/crypto/pem/pem_seal.c
@@ -113,8 +113,7 @@ PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, EVP_MD *md_type,
113 ret = npubk; 113 ret = npubk;
114 114
115err: 115err:
116 if (s != NULL) 116 free(s);
117 free(s);
118 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH); 117 OPENSSL_cleanse(key, EVP_MAX_KEY_LENGTH);
119 return (ret); 118 return (ret);
120} 119}
@@ -182,8 +181,7 @@ PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl,
182err: 181err:
183 EVP_MD_CTX_cleanup(&ctx->md); 182 EVP_MD_CTX_cleanup(&ctx->md);
184 EVP_CIPHER_CTX_cleanup(&ctx->cipher); 183 EVP_CIPHER_CTX_cleanup(&ctx->cipher);
185 if (s != NULL) 184 free(s);
186 free(s);
187 return (ret); 185 return (ret);
188} 186}
189#endif 187#endif
diff --git a/src/lib/libssl/src/crypto/pem/pem_sign.c b/src/lib/libssl/src/crypto/pem/pem_sign.c
index 8a6bcc8d8d..bfe7823e3d 100644
--- a/src/lib/libssl/src/crypto/pem/pem_sign.c
+++ b/src/lib/libssl/src/crypto/pem/pem_sign.c
@@ -100,7 +100,6 @@ PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, unsigned int *siglen,
100 100
101err: 101err:
102 /* ctx has been zeroed by EVP_SignFinal() */ 102 /* ctx has been zeroed by EVP_SignFinal() */
103 if (m != NULL) 103 free(m);
104 free(m);
105 return (ret); 104 return (ret);
106} 105}
diff --git a/src/lib/libssl/src/crypto/stack/stack.c b/src/lib/libssl/src/crypto/stack/stack.c
index 7eb00fd6e4..80ad087753 100644
--- a/src/lib/libssl/src/crypto/stack/stack.c
+++ b/src/lib/libssl/src/crypto/stack/stack.c
@@ -297,8 +297,7 @@ sk_free(_STACK *st)
297{ 297{
298 if (st == NULL) 298 if (st == NULL)
299 return; 299 return;
300 if (st->data != NULL) 300 free(st->data);
301 free(st->data);
302 free(st); 301 free(st);
303} 302}
304 303
diff --git a/src/lib/libssl/src/crypto/txt_db/txt_db.c b/src/lib/libssl/src/crypto/txt_db/txt_db.c
index e29a60316a..3f7fea6d2a 100644
--- a/src/lib/libssl/src/crypto/txt_db/txt_db.c
+++ b/src/lib/libssl/src/crypto/txt_db/txt_db.c
@@ -178,12 +178,9 @@ err:
178 if (ret != NULL) { 178 if (ret != NULL) {
179 if (ret->data != NULL) 179 if (ret->data != NULL)
180 sk_OPENSSL_PSTRING_free(ret->data); 180 sk_OPENSSL_PSTRING_free(ret->data);
181 if (ret->index != NULL) 181 free(ret->index);
182 free(ret->index); 182 free(ret->qual);
183 if (ret->qual != NULL) 183 free(ret);
184 free(ret->qual);
185 if (ret != NULL)
186 free(ret);
187 } 184 }
188 return (NULL); 185 return (NULL);
189 } else 186 } else
@@ -350,8 +347,7 @@ TXT_DB_free(TXT_DB *db)
350 lh_OPENSSL_STRING_free(db->index[i]); 347 lh_OPENSSL_STRING_free(db->index[i]);
351 free(db->index); 348 free(db->index);
352 } 349 }
353 if (db->qual != NULL) 350 free(db->qual);
354 free(db->qual);
355 if (db->data != NULL) { 351 if (db->data != NULL) {
356 for (i = sk_OPENSSL_PSTRING_num(db->data) - 1; i >= 0; i--) { 352 for (i = sk_OPENSSL_PSTRING_num(db->data) - 1; i >= 0; i--) {
357 /* check if any 'fields' have been allocated 353 /* check if any 'fields' have been allocated
@@ -361,8 +357,7 @@ TXT_DB_free(TXT_DB *db)
361 if (max == NULL) /* new row */ 357 if (max == NULL) /* new row */
362 { 358 {
363 for (n = 0; n < db->num_fields; n++) 359 for (n = 0; n < db->num_fields; n++)
364 if (p[n] != NULL) 360 free(p[n]);
365 free(p[n]);
366 } else { 361 } else {
367 for (n = 0; n < db->num_fields; n++) { 362 for (n = 0; n < db->num_fields; n++) {
368 if (((p[n] < (char *)p) || 363 if (((p[n] < (char *)p) ||
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_prn.c b/src/lib/libssl/src/crypto/x509v3/v3_prn.c
index ff08534f9a..d06932aef1 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_prn.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_prn.c
@@ -143,8 +143,7 @@ X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, int indent)
143 143
144err: 144err:
145 sk_CONF_VALUE_pop_free(nval, X509V3_conf_free); 145 sk_CONF_VALUE_pop_free(nval, X509V3_conf_free);
146 if (value) 146 free(value);
147 free(value);
148 if (method->it) 147 if (method->it)
149 ASN1_item_free(ext_str, ASN1_ITEM_ptr(method->it)); 148 ASN1_item_free(ext_str, ASN1_ITEM_ptr(method->it));
150 else 149 else
diff --git a/src/lib/libssl/src/crypto/x509v3/v3_utl.c b/src/lib/libssl/src/crypto/x509v3/v3_utl.c
index 0b389807dd..3134feff21 100644
--- a/src/lib/libssl/src/crypto/x509v3/v3_utl.c
+++ b/src/lib/libssl/src/crypto/x509v3/v3_utl.c
@@ -103,12 +103,9 @@ X509V3_add_value(const char *name, const char *value,
103 103
104err: 104err:
105 X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE); 105 X509V3err(X509V3_F_X509V3_ADD_VALUE, ERR_R_MALLOC_FAILURE);
106 if (vtmp) 106 free(vtmp);
107 free(vtmp); 107 free(tname);
108 if (tname) 108 free(tvalue);
109 free(tname);
110 if (tvalue)
111 free(tvalue);
112 return 0; 109 return 0;
113} 110}
114 111
@@ -126,12 +123,9 @@ X509V3_conf_free(CONF_VALUE *conf)
126{ 123{
127 if (!conf) 124 if (!conf)
128 return; 125 return;
129 if (conf->name) 126 free(conf->name);
130 free(conf->name); 127 free(conf->value);
131 if (conf->value) 128 free(conf->section);
132 free(conf->value);
133 if (conf->section)
134 free(conf->section);
135 free(conf); 129 free(conf);
136} 130}
137 131