Get rid of unclever assert() in Send_Message_Mask()
authorAlexander Barton <alex@barton.de>
Mon, 4 Jan 2016 19:37:13 +0000 (20:37 +0100)
committerAlexander Barton <alex@barton.de>
Mon, 4 Jan 2016 19:37:13 +0000 (20:37 +0100)
Either we use assert() to _guarantee_ a certain condition, or we use
if(...) to test for it. But never both.

So get rid of the assert() in Send_Message_Mask() and handle the case
that the target mask doesn't contain a dot (".") as regular error,
don't require the caller to assure that any more.

This polishes commit 5a312824.

Please note:
The test in Send_Message() is still _required_ to detect whether the
target is a channel (no dot) or a "target mask" (at least one dot)!

src/ngircd/irc.c

index ad8c050..e990cfd 100644 (file)
@@ -744,10 +744,7 @@ Send_Message_Mask(CLIENT * from, char * command, char * targetMask,
         * dot (".") and no wildcards ("*", "?") following the last one.
         */
        check_wildcards = strrchr(targetMask, '.');
-       assert(check_wildcards != NULL);
-       if (check_wildcards &&
-               check_wildcards[strcspn(check_wildcards, "*?")])
-       {
+       if (!check_wildcards || check_wildcards[strcspn(check_wildcards, "*?")]) {
                if (!SendErrors)
                        return true;
                return IRC_WriteErrClient(from, ERR_WILDTOPLEVEL, targetMask);