From f4ad2416a70a89f0c19dc93aa1bd0e05a8203603 Mon Sep 17 00:00:00 2001 From: k4be Date: Tue, 31 Aug 2021 13:38:14 +0200 Subject: [PATCH] Make server name check a bit more strict (% characters made sendnumeric generate invalid format strings) --- src/serv.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/serv.c b/src/serv.c index 0921d6b7c..b25afdd0d 100644 --- a/src/serv.c +++ b/src/serv.c @@ -1087,6 +1087,7 @@ void charsys_check_for_changes(void) int valid_server_name(char *name) { char *p; + int has_dot = 0; if (!*name) return 0; /* empty name */ @@ -1095,10 +1096,17 @@ int valid_server_name(char *name) return 0; /* oversized */ for (p = name; *p; p++) - if ((*p <= ' ') || (*p > '~')) + { + if (*p == '.') + { + has_dot = 1; + continue; + } + if ((*p <= '0') || (*p > 'z')) return 0; /* forbidden chars */ + } - if (!strchr(name, '.')) + if (!has_dot) return 0; /* no dot */ return 1;