瀏覽代碼

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",