From f7935a926bfa071256ca44896f21a6502f6de5bf Mon Sep 17 00:00:00 2001 From: "ccarlen%netscape.com" Date: Thu, 8 Mar 2001 03:17:44 +0000 Subject: [PATCH] Bug 70965 - Crash if SI_RemoveAllSignonData called more than once. r=morse@netscape.com, sr=brendan@mozilla.org --- extensions/wallet/src/singsign.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/extensions/wallet/src/singsign.cpp b/extensions/wallet/src/singsign.cpp index 28d292e9572e..c5ee0e00d195 100644 --- a/extensions/wallet/src/singsign.cpp +++ b/extensions/wallet/src/singsign.cpp @@ -1196,16 +1196,20 @@ SI_RemoveAllSignonData() { } si_PartiallyLoaded = PR_FALSE; - si_Reject * reject; - while (LIST_COUNT(si_reject_list)>0) { - reject = NS_STATIC_CAST(si_Reject*, si_reject_list->ElementAt(0)); - if (reject) { - si_FreeReject(reject); - si_signon_list_changed = PR_TRUE; + if (si_reject_list) { + si_Reject * reject; + while (LIST_COUNT(si_reject_list)>0) { + reject = NS_STATIC_CAST(si_Reject*, si_reject_list->ElementAt(0)); + if (reject) { + si_FreeReject(reject); + si_signon_list_changed = PR_TRUE; + } } + delete si_reject_list; + si_reject_list = nsnull; } - delete si_reject_list; delete si_signon_list; + si_signon_list = nsnull; } PUBLIC void