소스 검색

Bug 613056 - fix coverify Defect Type: Null pointer dereferences issues 11892 - 11939

https://bugzilla.redhat.com/show_bug.cgi?id=613056
Resolves: bug 613056
Bug description: Fix coverify Defect Type: Null pointer dereferences issues 11892 - 11939
description: Catch possible NULL pointer in _dblayer_delete_instance_dir().
Endi S. Dewata 15 년 전
부모
커밋
61a4a32870
1개의 변경된 파일20개의 추가작업 그리고 15개의 파일을 삭제
  1. 20 15
      ldap/servers/slapd/back-ldbm/dblayer.c

+ 20 - 15
ldap/servers/slapd/back-ldbm/dblayer.c

@@ -4331,26 +4331,31 @@ static int _dblayer_delete_instance_dir(ldbm_instance *inst, int startdb)
     char *inst_dirp = NULL;
     int rval = 0;
 
-    if (NULL != li)
+    if (NULL == li)
     {
-        if (startdb)
-        {
-            /* close immediately; no need to run db threads */
-            rval = dblayer_start(li, DBLAYER_NORMAL_MODE|DBLAYER_NO_DBTHREADS_MODE);
-            if (rval)
-            {
-                LDAPDebug(LDAP_DEBUG_ANY, "_dblayer_delete_instance_dir: dblayer_start failed! %s (%d)\n",
-                    dblayer_strerror(rval), rval, 0);
-                goto done;
-            }
-        }
-        priv = (dblayer_private*)li->li_dblayer_private;
-        if (NULL != priv)
+        LDAPDebug(LDAP_DEBUG_ANY, "_dblayer_delete_instance_dir: NULL LDBM info\n", 0, 0, 0);
+        rval = -1;
+        goto done;
+    }
+
+    if (startdb)
+    {
+        /* close immediately; no need to run db threads */
+        rval = dblayer_start(li, DBLAYER_NORMAL_MODE|DBLAYER_NO_DBTHREADS_MODE);
+        if (rval)
         {
-            pEnv = priv->dblayer_env;
+            LDAPDebug(LDAP_DEBUG_ANY, "_dblayer_delete_instance_dir: dblayer_start failed! %s (%d)\n",
+                dblayer_strerror(rval), rval, 0);
+            goto done;
         }
     }
 
+    priv = (dblayer_private*)li->li_dblayer_private;
+    if (NULL != priv)
+    {
+        pEnv = priv->dblayer_env;
+    }
+
     if (inst->inst_dir_name == NULL)
         dblayer_get_instance_data_dir(inst->inst_be);