]> jfr.im git - irc/freenode/solanum.git/commitdiff
match: assert mask_match mask is not too long
authorEd Kellett <redacted>
Fri, 30 Oct 2020 10:44:03 +0000 (10:44 +0000)
committerEd Kellett <redacted>
Sat, 31 Oct 2020 17:00:25 +0000 (17:00 +0000)
ircd/match.c

index 417e2ccd3405ee6c12c646a706ae0d36363335fb..b3e883c3a2b63c74ec60ec0b89fce3b369b46a02 100644 (file)
@@ -144,12 +144,16 @@ int mask_match(const char *mask_, const char *name)
        static char mask[BUFSIZE];
        const char *m = mask, *n = name;
        const char *m_tmp = mask, *n_tmp = name;
+       size_t len;
        int star_p;
 
        s_assert(mask_ != NULL);
        s_assert(name != NULL);
 
-       rb_strlcpy(mask, mask_, sizeof mask);
+       len = rb_strlcpy(mask, mask_, sizeof mask);
+       s_assert(len < sizeof mask);
+       (void) len; /* for NDEBUG */
+
        match_arrange_stars(mask);
 
        for (;;)