Browse Source

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 năm trước cách đây
mục cha
commit
b953326204
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  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",