From 3571d7a5855cb1c222f83f98e03c340185e43152 Mon Sep 17 00:00:00 2001 From: Nathan Kinder Date: Mon, 13 Sep 2010 15:05:52 -0700 Subject: Bug 630097 - (cov#12143) NULL dereference in cos cache code The tmpDn pointer is deferenced before checking if it is NULL. We need to check if it is NULL first. --- ldap/servers/plugins/cos/cos_cache.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'ldap') diff --git a/ldap/servers/plugins/cos/cos_cache.c b/ldap/servers/plugins/cos/cos_cache.c index fe8f5346..e20fd0de 100644 --- a/ldap/servers/plugins/cos/cos_cache.c +++ b/ldap/servers/plugins/cos/cos_cache.c @@ -1383,7 +1383,7 @@ static int cos_cache_add_defn( int ret = 0; int tmplCount = 0; cosDefinitions *theDef = 0; - cosAttrValue *pTmpTmplDn = *tmpDn; + cosAttrValue *pTmpTmplDn = 0; cosAttrValue *pDummyAttrVal = 0; cosAttrValue *pAttrsIter = 0; cosAttributes *pDummyAttributes = 0; @@ -1396,9 +1396,15 @@ static int cos_cache_add_defn( ret = -1; goto out; } - pSpecsIter = *spec; + if (!tmpDn) { + LDAPDebug( LDAP_DEBUG_ANY, "missing tmpDn\n",0,0,0); + ret = -1; + goto out; + } + pTmpTmplDn = *tmpDn; + /* we don't want cosspecifiers that can be supplied by the same scheme */ while( pSpecsIter ) { -- cgit