From 036803b272d48d6034f4d87ba70009007185f8e3 Mon Sep 17 00:00:00 2001 From: "alexei.volkov.bugs%sun.com" Date: Wed, 19 Apr 2006 22:53:45 +0000 Subject: [PATCH] Patch contributed by timeless@bemail.org [Bug 334442] Incorrect use of realloc oom Crash in secmod_ReadPermDB;r=nelson --- security/nss/lib/softoken/pk11db.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/security/nss/lib/softoken/pk11db.c b/security/nss/lib/softoken/pk11db.c index c60e877802c..30584c91e82 100644 --- a/security/nss/lib/softoken/pk11db.c +++ b/security/nss/lib/softoken/pk11db.c @@ -868,7 +868,7 @@ secmod_ReadPermDB(const char *appName, const char *filename, DBT key,data; int ret; DB *pkcs11db = NULL; - char **moduleList = NULL; + char **moduleList = NULL, **newModuleList = NULL; int moduleCount = 1; int useCount = SECMOD_STEP; @@ -888,9 +888,10 @@ secmod_ReadPermDB(const char *appName, const char *filename, PRBool internal = PR_FALSE; if ((moduleCount+1) >= useCount) { useCount += SECMOD_STEP; - moduleList = + newModuleList = (char **)PORT_Realloc(moduleList,useCount*sizeof(char *)); - if (moduleList == NULL) goto done; + if (newModuleList == NULL) goto done; + moduleList = newModuleList; PORT_Memset(&moduleList[moduleCount+1],0, sizeof(char *)*SECMOD_STEP); }