summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaie%kuix.de <devnull@localhost>2006-04-24 18:02:17 +0000
committerkaie%kuix.de <devnull@localhost>2006-04-24 18:02:17 +0000
commit089f031e67a4cb9eb888d5fbf3c06af1e8c7456b (patch)
tree18d01cf55d8ecdd225f6fc5aa7dfbead86dd4d24
parenta2ac0a2cb7807b300af389ede2bec2456c38d6fa (diff)
downloadnss-hg-089f031e67a4cb9eb888d5fbf3c06af1e8c7456b.tar.gz
bug 334442, Incorrect use of realloc oom Crash in secmod_ReadPermDBFIREFOX_2_0a2_RELEASE
r=nelson, a=dveditz
-rw-r--r--security/nss/lib/softoken/pk11db.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/security/nss/lib/softoken/pk11db.c b/security/nss/lib/softoken/pk11db.c
index c60e87780..c1d649b35 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);
}