diff options
| author | logan <> | 2014-06-04 20:04:55 +0000 |
|---|---|---|
| committer | logan <> | 2014-06-04 20:04:55 +0000 |
| commit | 95e4d3d1bbe977976ad0f2058375f6f4713a6474 (patch) | |
| tree | 1b9915059330e739880cc6578047ec4d4a21a99a /src | |
| parent | d492661281c20abc5a3d96742866e0d1e698192a (diff) | |
| download | openbsd-95e4d3d1bbe977976ad0f2058375f6f4713a6474.tar.gz openbsd-95e4d3d1bbe977976ad0f2058375f6f4713a6474.tar.bz2 openbsd-95e4d3d1bbe977976ad0f2058375f6f4713a6474.zip | |
Fix a leak that can occur when len == 0, and as a result we leak a \0 byte.
(From Frantisek Boranek)
OK from miod@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/pkcs12/p12_kiss.c | 2 | ||||
| -rw-r--r-- | src/lib/libssl/src/crypto/pkcs12/p12_kiss.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_kiss.c b/src/lib/libcrypto/pkcs12/p12_kiss.c index bc1fcff45d..cfefc6aaac 100644 --- a/src/lib/libcrypto/pkcs12/p12_kiss.c +++ b/src/lib/libcrypto/pkcs12/p12_kiss.c | |||
| @@ -269,7 +269,7 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen, | |||
| 269 | int len, r; | 269 | int len, r; |
| 270 | unsigned char *data; | 270 | unsigned char *data; |
| 271 | len = ASN1_STRING_to_UTF8(&data, fname); | 271 | len = ASN1_STRING_to_UTF8(&data, fname); |
| 272 | if(len > 0) { | 272 | if(len >= 0) { |
| 273 | r = X509_alias_set1(x509, data, len); | 273 | r = X509_alias_set1(x509, data, len); |
| 274 | free(data); | 274 | free(data); |
| 275 | if (!r) | 275 | if (!r) |
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c b/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c index bc1fcff45d..cfefc6aaac 100644 --- a/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c +++ b/src/lib/libssl/src/crypto/pkcs12/p12_kiss.c | |||
| @@ -269,7 +269,7 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen, | |||
| 269 | int len, r; | 269 | int len, r; |
| 270 | unsigned char *data; | 270 | unsigned char *data; |
| 271 | len = ASN1_STRING_to_UTF8(&data, fname); | 271 | len = ASN1_STRING_to_UTF8(&data, fname); |
| 272 | if(len > 0) { | 272 | if(len >= 0) { |
| 273 | r = X509_alias_set1(x509, data, len); | 273 | r = X509_alias_set1(x509, data, len); |
| 274 | free(data); | 274 | free(data); |
| 275 | if (!r) | 275 | if (!r) |
