From f57664ddd0ad29ee60e8218f210a3b4ace494da5 Mon Sep 17 00:00:00 2001 From: Přemysl Janouch Date: Mon, 18 Jan 2016 00:59:43 +0100 Subject: degesch: add an assertion It should never fail with current code. --- degesch.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/degesch.c b/degesch.c index 30af309..59a5675 100644 --- a/degesch.c +++ b/degesch.c @@ -5325,9 +5325,13 @@ mode_processor_do_user (struct mode_processor *self) || !(channel_user = irc_channel_get_user (self->channel, user))) return; + // Translate mode character to user prefix character const char *all_prefixes = self->s->irc_chanuser_prefixes; const char *all_modes = self->s->irc_chanuser_modes; - char prefix = all_prefixes[strchr (all_modes, self->mode_char) - all_modes]; + + const char *mode = strchr (all_modes, self->mode_char); + hard_assert (mode && (size_t) (mode - all_modes) < strlen (all_prefixes)); + char prefix = all_prefixes[mode - all_modes]; struct str *prefixes = &channel_user->prefixes; const char *pos = strchr (prefixes->str, prefix); -- cgit v1.2.3-70-g09d2