Return 1 when openssl req -addext kv is duplicated
authorkinichiro <kinichiro.inoguchi@gmail.com>
Thu, 5 Dec 2019 11:00:50 +0000 (20:00 +0900)
committerTomas Mraz <tmraz@fedoraproject.org>
Mon, 16 Dec 2019 14:08:03 +0000 (15:08 +0100)
CLA: trivial

Fixes #10273

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/10578)

(cherry picked from commit 1aeec3dbc2d62f902698b1eba9ed31cbd436f9dc)

apps/req.c

index d717c493e53ea6d2588933cf66a709c7f8eee405..a603907cd5af53fe39922c52c858b2d1003a7ab3 100644 (file)
@@ -200,9 +200,12 @@ static int duplicated(LHASH_OF(OPENSSL_STRING) *addexts, char *kv)
     *p = '\0';
 
     /* Finally have a clean "key"; see if it's there [by attempt to add it]. */
-    if ((p = (char *)lh_OPENSSL_STRING_insert(addexts, (OPENSSL_STRING*)kv))
-        != NULL || lh_OPENSSL_STRING_error(addexts)) {
-        OPENSSL_free(p != NULL ? p : kv);
+    p = (char *)lh_OPENSSL_STRING_insert(addexts, (OPENSSL_STRING*)kv);
+    if (p != NULL) {
+        OPENSSL_free(p);
+        return 1;
+    } else if (lh_OPENSSL_STRING_error(addexts)) {
+        OPENSSL_free(kv);
         return -1;
     }