diff options
author | inoguchi <> | 2022-01-06 12:54:51 +0000 |
---|---|---|
committer | inoguchi <> | 2022-01-06 12:54:51 +0000 |
commit | ecdc06b9b08e7d66c1958f5db155db85b2532049 (patch) | |
tree | 7fdcfdf8c627e2b6612dc43f4a3d71f0fe700e14 /src | |
parent | bf53364edd357afb5e77faffa706cd8b48bfe4e8 (diff) | |
download | openbsd-ecdc06b9b08e7d66c1958f5db155db85b2532049.tar.gz openbsd-ecdc06b9b08e7d66c1958f5db155db85b2532049.tar.bz2 openbsd-ecdc06b9b08e7d66c1958f5db155db85b2532049.zip |
Free memory before assign to avoid leak
CID 313263 313301 313322
Diffstat (limited to '')
-rw-r--r-- | src/usr.bin/openssl/cms.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/usr.bin/openssl/cms.c b/src/usr.bin/openssl/cms.c index 9e955cf1ac..79728e0b5e 100644 --- a/src/usr.bin/openssl/cms.c +++ b/src/usr.bin/openssl/cms.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: cms.c,v 1.26 2022/01/06 11:46:05 inoguchi Exp $ */ | 1 | /* $OpenBSD: cms.c,v 1.27 2022/01/06 12:54:51 inoguchi Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project. | 3 | * project. |
4 | */ | 4 | */ |
@@ -209,6 +209,8 @@ cms_opt_cipher(int argc, char **argv, int *argsused) | |||
209 | static int | 209 | static int |
210 | cms_opt_econtent_type(char *arg) | 210 | cms_opt_econtent_type(char *arg) |
211 | { | 211 | { |
212 | ASN1_OBJECT_free(cms_config.econtent_type); | ||
213 | |||
212 | if ((cms_config.econtent_type = OBJ_txt2obj(arg, 0)) == NULL) { | 214 | if ((cms_config.econtent_type = OBJ_txt2obj(arg, 0)) == NULL) { |
213 | BIO_printf(bio_err, "Invalid OID %s\n", arg); | 215 | BIO_printf(bio_err, "Invalid OID %s\n", arg); |
214 | return (1); | 216 | return (1); |
@@ -377,6 +379,8 @@ cms_opt_secretkey(char *arg) | |||
377 | { | 379 | { |
378 | long ltmp; | 380 | long ltmp; |
379 | 381 | ||
382 | free(cms_config.secret_key); | ||
383 | |||
380 | if ((cms_config.secret_key = string_to_hex(arg, <mp)) == NULL) { | 384 | if ((cms_config.secret_key = string_to_hex(arg, <mp)) == NULL) { |
381 | BIO_printf(bio_err, "Invalid key %s\n", arg); | 385 | BIO_printf(bio_err, "Invalid key %s\n", arg); |
382 | return (1); | 386 | return (1); |
@@ -390,6 +394,8 @@ cms_opt_secretkeyid(char *arg) | |||
390 | { | 394 | { |
391 | long ltmp; | 395 | long ltmp; |
392 | 396 | ||
397 | free(cms_config.secret_keyid); | ||
398 | |||
393 | if ((cms_config.secret_keyid = string_to_hex(arg, <mp)) == NULL) { | 399 | if ((cms_config.secret_keyid = string_to_hex(arg, <mp)) == NULL) { |
394 | BIO_printf(bio_err, "Invalid id %s\n", arg); | 400 | BIO_printf(bio_err, "Invalid id %s\n", arg); |
395 | return (1); | 401 | return (1); |