diff --git a/filter.c b/filter.c index 2a7d564..a648d8b 100644 --- a/filter.c +++ b/filter.c @@ -74,7 +74,7 @@ bool filterRemove(struct Filter filter) { if (filter.chan && strcasecmp(filters[i].chan, filter.chan)) continue; if (filter.mesg && strcasecmp(filters[i].mesg, filter.mesg)) continue; free(filters[i].mask); - filters[i] = filters[--len]; + memmove(&filters[i], &filters[i + 1], sizeof(*filters) * --len); filters[len] = (struct Filter) {0}; found = true; }