diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/a_int.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/a_int.c | 9 |
1 files changed, 3 insertions, 6 deletions
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) { |
