Commit Diff
Diff:
b4d0a4038398c23d015bd3faf6247a0dd91016a9
51e5ba94b3f28f84aadc140f0c340d03d2a11d6c
Commit:
51e5ba94b3f28f84aadc140f0c340d03d2a11d6c
Tree:
8af3faf8c2f81ee97cbac20d43035c1efa07d8dc
Author:
Federico G. Schwindt <fgsch@lodoss.net>
Committer:
Federico G. Schwindt <fgsch@lodoss.net>
Date:
Sat Apr 20 09:53:16 2013 UTC
Message:
Ensure there is enough space for the mask As pointed by Alex while strl{cat,cpy} take the full length we need to leave space to ensure a proper mask is always created so revert the removal of - N from my last change.
blob - d98dc6c847ec85cf9d13fca676bb78f26e5dd4df
blob + b0accd41edb6476a6d85e27567618b65402906dd
--- src/ngircd/lists.c
+++ src/ngircd/lists.c
@@ -279,16 +279,16 @@ Lists_MakeMask(const char *Pattern, char *mask, size_t
if (!at && !excl) {
/* Neither "!" nor "@" found: use string as nickname */
- strlcpy(mask, Pattern, len);
+ strlcpy(mask, Pattern, len - 5);
strlcat(mask, "!*@*", len);
} else if (!at && excl) {
/* Domain part is missing */
- strlcpy(mask, Pattern, len);
+ strlcpy(mask, Pattern, len - 3);
strlcat(mask, "@*", len);
} else if (at && !excl) {
/* User name is missing */
*at = '\0'; at++;
- strlcpy(mask, Pattern, len);
+ strlcpy(mask, Pattern, len - 5);
strlcat(mask, "!*@", len);
strlcat(mask, at, len);
} else {
IRCNow