]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Coverity: fix two minor NPD issues.
authorFdaSilvaYY <fdasilvayy@gmail.com>
Sat, 6 Apr 2019 09:16:59 +0000 (19:16 +1000)
committerPauli <paul.dale@oracle.com>
Sat, 6 Apr 2019 09:16:59 +0000 (19:16 +1000)
Found by Coverity.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8274)

crypto/conf/conf_lib.c
crypto/ex_data.c

index 606563a4fa20fa75109ae486b8248f4112557f7f..13d061b298cf870c441dd8430bb1b6c9f2143c96 100644 (file)
@@ -356,8 +356,10 @@ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void)
 {
     OPENSSL_INIT_SETTINGS *ret = malloc(sizeof(*ret));
 
-    if (ret != NULL)
-        memset(ret, 0, sizeof(*ret));
+    if (ret == NULL)
+        return NULL;
+
+    memset(ret, 0, sizeof(*ret));
     ret->flags = DEFAULT_CONF_MFLAGS;
 
     return ret;
index a728bfbbd375dd3203db257d018260d5ea0337e4..5f83191bae3aeaaf2d98363edc3f3e9e9eccb22f 100644 (file)
@@ -235,7 +235,7 @@ int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad)
         return 0;
     }
     for (i = 0; i < mx; i++) {
-        if (storage[i] && storage[i]->new_func) {
+        if (storage[i] != NULL && storage[i]->new_func != NULL) {
             ptr = CRYPTO_get_ex_data(ad, i);
             storage[i]->new_func(obj, ptr, ad, i,
                                  storage[i]->argl, storage[i]->argp);
@@ -299,7 +299,7 @@ int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to,
 
     for (i = 0; i < mx; i++) {
         ptr = CRYPTO_get_ex_data(from, i);
-        if (storage[i] && storage[i]->dup_func)
+        if (storage[i] != NULL && storage[i]->dup_func != NULL)
             if (!storage[i]->dup_func(to, from, &ptr, i,
                                       storage[i]->argl, storage[i]->argp))
                 goto err;
@@ -380,6 +380,8 @@ int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad,
         return 1;
 
     ip = get_and_lock(class_index);
+    if (ip == NULL)
+        return 0;
     f = sk_EX_CALLBACK_value(ip->meth, idx);
     CRYPTO_THREAD_unlock(ex_data_lock);
 
@@ -387,6 +389,9 @@ int CRYPTO_alloc_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad,
      * This should end up calling CRYPTO_set_ex_data(), which allocates
      * everything necessary to support placing the new data in the right spot.
      */
+    if (f->new_func == NULL)
+        return 0;
+
     f->new_func(obj, curval, ad, idx, f->argl, f->argp);
 
     return 1;