diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-01-14 17:05:48 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-01-14 17:07:18 +0100 |
commit | 020abc8856f94d6e355f4daa972ac75fb05ae113 (patch) | |
tree | 80b17c194d00325fb131d61da4a1876d9f9cba9f | |
parent | 9ec836c033fc6e55e80f3309b3e05acdf09bb297 (diff) | |
download | busybox-w32-020abc8856f94d6e355f4daa972ac75fb05ae113.tar.gz busybox-w32-020abc8856f94d6e355f4daa972ac75fb05ae113.tar.bz2 busybox-w32-020abc8856f94d6e355f4daa972ac75fb05ae113.zip |
udhcpd: mangle hostnames starting with dash ("-option")
function old new delta
add_lease 316 328 +12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/udhcp/dhcpd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/networking/udhcp/dhcpd.c b/networking/udhcp/dhcpd.c index 3e08ec011..9d6604943 100644 --- a/networking/udhcp/dhcpd.c +++ b/networking/udhcp/dhcpd.c | |||
@@ -192,6 +192,8 @@ static struct dyn_lease *add_lease( | |||
192 | * but merely make dumpleases output safe for shells to use. | 192 | * but merely make dumpleases output safe for shells to use. |
193 | * We accept "0-9A-Za-z._-", all other chars turn to dots. | 193 | * We accept "0-9A-Za-z._-", all other chars turn to dots. |
194 | */ | 194 | */ |
195 | if (*p == '-') | ||
196 | *p = '.'; /* defeat "-option" attacks too */ | ||
195 | while (*p) { | 197 | while (*p) { |
196 | if (!isalnum(*p) && *p != '-' && *p != '_') | 198 | if (!isalnum(*p) && *p != '-' && *p != '_') |
197 | *p = '.'; | 199 | *p = '.'; |