]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-dcrypt: Fix i2d_ASN1_OBJECT usage
authorAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 23 Aug 2019 16:39:16 +0000 (19:39 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Mon, 23 Sep 2019 05:47:45 +0000 (08:47 +0300)
i2d_ASN1_OBJECT tells how much memory we need.

src/lib-dcrypt/dcrypt-openssl.c

index ece4cfb4436b4683c8ff780ed4fbad4bb7989f18..eb3b938c64dd2ac3cebcc88efd48f366cf01662a 100644 (file)
@@ -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) {