Преглед изворни кода

Bug 630097 - (cov#15465) Null dereference in USN code

At the end of the for loop, be will be NULL if we never find a
valid be->be_usn_counter.  This will cause us to dereference a
NULL pointer at the next if statement after the for loop.  We
need to check if be is NULL before dereferencing it.
Nathan Kinder пре 15 година
родитељ
комит
b953326204
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      ldap/servers/plugins/usn/usn.c

+ 1 - 1
ldap/servers/plugins/usn/usn.c

@@ -582,7 +582,7 @@ usn_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter,
                 break;
             }
         }
-        if (be->be_usn_counter) {
+        if (be && be->be_usn_counter) {
             /* get a next USN counter from be_usn_counter; 
              * then minus 1 from it */
             PR_snprintf(usn_berval.bv_val, USN_COUNTER_BUF_LEN, "%" NSPRI64 "d",