Fix error handling/cleanup
authorRich Salz <rsalz@openssl.org>
Sun, 3 Sep 2017 15:33:34 +0000 (11:33 -0400)
committerRich Salz <rsalz@openssl.org>
Thu, 7 Sep 2017 20:12:00 +0000 (16:12 -0400)
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/4326)

(cherry picked from commit 180794c54e98ae467c4ebced3737e1ede03e320a)

crypto/x509/x_name.c

index 97d735f8f2c036db41d85df60d19d084f311e9fb..0af5df5cfc4fc5750b01d7a739f1df8b8460f7cb 100644 (file)
@@ -472,19 +472,11 @@ static int i2d_name_canon(STACK_OF(STACK_OF_X509_NAME_ENTRY) * _intname,
 
 int X509_NAME_set(X509_NAME **xn, X509_NAME *name)
 {
-    X509_NAME *in;
-
-    if (!xn || !name)
-        return (0);
-
-    if (*xn != name) {
-        in = X509_NAME_dup(name);
-        if (in != NULL) {
-            X509_NAME_free(*xn);
-            *xn = in;
-        }
-    }
-    return (*xn != NULL);
+    if ((name = X509_NAME_dup(name)) == NULL)
+        return 0;
+    X509_NAME_free(*xn);
+    *xn = name;
+    return 1;
 }
 
 int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase)