Handle empty case in X509_NAME canonical encoding.
[openssl.git] / crypto / asn1 / x_name.c
index 50d3c7597b2f5e1da45de5466efc17e91ef38b1d..193f6d4403c8b4407e47aeaf6ea05cedb6700875 100644 (file)
@@ -320,6 +320,12 @@ static int x509_name_canon(X509_NAME *a)
                OPENSSL_free(a->canon_enc);
                a->canon_enc = NULL;
                }
+       /* Special case: empty X509_NAME => null encoding */
+       if (sk_X509_NAME_ENTRY_num(a->entries) == 0)
+               {
+               a->canon_enclen = 0;
+               return 1;
+               }
        intname = sk_new_null();
        if(!intname)
                goto err;