aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-01-14 17:05:48 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-01-14 17:07:18 +0100
commit020abc8856f94d6e355f4daa972ac75fb05ae113 (patch)
tree80b17c194d00325fb131d61da4a1876d9f9cba9f
parent9ec836c033fc6e55e80f3309b3e05acdf09bb297 (diff)
downloadbusybox-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.c2
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 = '.';