aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kike.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/kike.c b/src/kike.c
index 75537d6..3202333 100644
--- a/src/kike.c
+++ b/src/kike.c
@@ -681,9 +681,10 @@ client_unregister (struct client *c, const char *reason)
struct str_map_iter iter;
str_map_iter_init (&iter, &c->ctx->channels);
- struct channel *chan;
- while ((chan = str_map_iter_next (&iter)))
+ struct channel *chan, *next = str_map_iter_next (&iter);
+ for (chan = next; chan; chan = next)
{
+ next = str_map_iter_next (&iter);
struct channel_user *user;
if (!(user = channel_get_user (chan, c)))
continue;