diff options
author | jpierre%netscape.com <devnull@localhost> | 2004-04-06 21:04:04 +0000 |
---|---|---|
committer | jpierre%netscape.com <devnull@localhost> | 2004-04-06 21:04:04 +0000 |
commit | c4d6282b5b7fdb588cbf621743c57b819b9b2237 (patch) | |
tree | 3bb9a222fcd28e1cc6b7d2d294af042542567b87 | |
parent | d7b20ba14fd2aea8cfd54860f43932d6d8908b28 (diff) | |
download | nss-hg-c4d6282b5b7fdb588cbf621743c57b819b9b2237.tar.gz |
Fix for bugtraq 4877287
-rw-r--r-- | security/nss/lib/certdb/genname.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/security/nss/lib/certdb/genname.c b/security/nss/lib/certdb/genname.c index 9ee7126a3..a4eb971a8 100644 --- a/security/nss/lib/certdb/genname.c +++ b/security/nss/lib/certdb/genname.c @@ -373,6 +373,10 @@ cert_DecodeGeneralName(PRArenaPool *arena, if (genName == NULL) { genName = (CERTGeneralName *) PORT_ArenaZAlloc(arena, sizeof(CERTGeneralName)); } + if (!genName) { + return NULL; + } + genName->l.prev = genName->l.next = &genName->l; genNameType = (CERTGeneralNameType)((*(encodedName->data) & 0x0f) + 1); switch (genNameType) { case certURI: @@ -415,8 +419,6 @@ cert_DecodeGeneralName(PRArenaPool *arena, goto loser; } genName->type = genNameType; - genName->l.next = (PRCList *) ((char *) genName) + offsetof(CERTGeneralName, l); - genName->l.prev = genName->l.next; return genName; loser: return NULL; |