From: Aki Tuomi Date: Fri, 23 Aug 2019 16:39:16 +0000 (+0300) Subject: lib-dcrypt: Fix i2d_ASN1_OBJECT usage X-Git-Tag: 2.3.8~64 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef9a1cdf0406b4f313a8db773cf58b37ca0c480c;p=thirdparty%2Fdovecot%2Fcore.git lib-dcrypt: Fix i2d_ASN1_OBJECT usage i2d_ASN1_OBJECT tells how much memory we need. --- diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c index ece4cfb443..eb3b938c64 100644 --- a/src/lib-dcrypt/dcrypt-openssl.c +++ b/src/lib-dcrypt/dcrypt-openssl.c @@ -2282,14 +2282,15 @@ dcrypt_openssl_name2oid(const char *name, buffer_t *oid, const char **error_r) if (obj == NULL) return dcrypt_openssl_error(error_r); - size_t len = OBJ_length(obj); + size_t len = OBJ_length(obj); if (len == 0) { if (error_r != NULL) *error_r = "Object has no OID assigned"; return FALSE; } - unsigned char *bufptr = buffer_append_space_unsafe(oid, len + 2); + len = i2d_ASN1_OBJECT(obj, NULL); + unsigned char *bufptr = buffer_append_space_unsafe(oid, len); i2d_ASN1_OBJECT(obj, &bufptr); ASN1_OBJECT_free(obj); if (bufptr != NULL) {