From b95332620490521a66b248e7e3840507f86705a9 Mon Sep 17 00:00:00 2001 From: Nathan Kinder Date: Tue, 14 Sep 2010 13:53:33 -0700 Subject: 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. --- ldap/servers/plugins/usn/usn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ldap/servers/plugins/usn/usn.c b/ldap/servers/plugins/usn/usn.c index 914c7acc..4ad9e665 100644 --- a/ldap/servers/plugins/usn/usn.c +++ b/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", -- cgit