diff options
author | emaldona%redhat.com <devnull@localhost> | 2010-02-06 04:48:56 +0000 |
---|---|---|
committer | emaldona%redhat.com <devnull@localhost> | 2010-02-06 04:48:56 +0000 |
commit | 73fc0e46a624104678075893c7586ed0a9b6695b (patch) | |
tree | 4caddf9a86196dde8e4d902033d3d399987369b3 /security | |
parent | af2da68a76ec9a65add544a969eaa06b1008f994 (diff) | |
download | nss-hg-73fc0e46a624104678075893c7586ed0a9b6695b.tar.gz |
Fix seg fault when enumerating the nss database, 544584, r=rrelyea
Diffstat (limited to 'security')
-rw-r--r-- | security/nss/lib/pk11wrap/pk11pars.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/security/nss/lib/pk11wrap/pk11pars.c b/security/nss/lib/pk11wrap/pk11pars.c index c36cd25d8..585508475 100644 --- a/security/nss/lib/pk11wrap/pk11pars.c +++ b/security/nss/lib/pk11wrap/pk11pars.c @@ -1134,6 +1134,12 @@ SECMOD_LoadModule(char *modulespec,SECMODModule *parent, PRBool recurse) for (; *index; index++) { SECMODModule *child; + if (0 == PORT_Strcmp(*index, modulespec)) { + /* avoid trivial infinite recursion */ + PORT_SetError(SEC_ERROR_NO_MODULE); + rv = SECFailure; + break; + } child = SECMOD_LoadModule(*index,module,PR_TRUE); if (!child) break; if (child->isCritical && !child->loaded) { |