summaryrefslogtreecommitdiff
path: root/security/nss/lib/pk11wrap
diff options
context:
space:
mode:
authoremaldona%redhat.com <devnull@localhost>2010-02-06 04:48:56 +0000
committeremaldona%redhat.com <devnull@localhost>2010-02-06 04:48:56 +0000
commit73fc0e46a624104678075893c7586ed0a9b6695b (patch)
tree4caddf9a86196dde8e4d902033d3d399987369b3 /security/nss/lib/pk11wrap
parentaf2da68a76ec9a65add544a969eaa06b1008f994 (diff)
downloadnss-hg-73fc0e46a624104678075893c7586ed0a9b6695b.tar.gz
Fix seg fault when enumerating the nss database, 544584, r=rrelyea
Diffstat (limited to 'security/nss/lib/pk11wrap')
-rw-r--r--security/nss/lib/pk11wrap/pk11pars.c6
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) {