summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/os_ignore.c3
-rw-r--r--src/process.c43
2 files changed, 26 insertions, 20 deletions
diff --git a/src/core/os_ignore.c b/src/core/os_ignore.c
index a4d73d649..7b1ee8ff5 100644
--- a/src/core/os_ignore.c
+++ b/src/core/os_ignore.c
@@ -171,6 +171,9 @@ void delete_ignore(const char *nick)
if (stricmp(ign->who, nick) == 0)
break;
}
+ /* If the ignore was not found, bail out -GD */
+ if (!ign)
+ return;
if (prev)
prev->next = ign->next;
else
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;
+ }
}
}
}