diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-05-25 16:33:45 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-05-25 16:33:45 +0000 |
commit | ea4ae84f855473023428ba091c6120b896f2a3d3 (patch) | |
tree | 51d07ed6260c871b07e15ae456cb27d9b60654f5 /src/process.c | |
parent | 9f88e2d9fe06f567d60caf950c2206781a676b41 (diff) |
BUILD : 1.7.10 (815) BUGS : 383 NOTES : Added value checking for deleting ignores, which fixes a (very rare) segfault
git-svn-id: svn://svn.anope.org/anope/trunk@815 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@568 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/process.c')
-rw-r--r-- | src/process.c | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/src/process.c b/src/process.c index 95307c1ed..1fa7354b2 100644 --- a/src/process.c +++ b/src/process.c @@ -99,30 +99,33 @@ IgnoreData *get_ignore(const char *nick) break; } } - if (!finished && whichlist2) { - for (ign = *whichlist2, prev = NULL; ign; - prev = ign, ign = ign->next) { - if (match_usermask(ign->who, u)) { - finished = 1; - break; + /* We can only do the next checks if we have an actual user -GD */ + if (u) { + if (!finished && whichlist2) { + for (ign = *whichlist2, prev = NULL; ign; + prev = ign, ign = ign->next) { + if (match_usermask(ign->who, u)) { + finished = 1; + break; + } } } - } - if (!finished) { - for (ign = *whichlistast, prev = NULL; ign; - prev = ign, ign = ign->next) { - if (match_usermask(ign->who, u)) { - finished = 1; - break; + if (!finished) { + for (ign = *whichlistast, prev = NULL; ign; + prev = ign, ign = ign->next) { + if (match_usermask(ign->who, u)) { + finished = 1; + break; + } } } - } - if (!finished) { - for (ign = *whichlistqst, prev = NULL; ign; - prev = ign, ign = ign->next) { - if (match_usermask(ign->who, u)) { - finished = 1; - break; + if (!finished) { + for (ign = *whichlistqst, prev = NULL; ign; + prev = ign, ign = ign->next) { + if (match_usermask(ign->who, u)) { + finished = 1; + break; + } } } } |