From: Denys Vlasenko Date: Sat, 24 Oct 2015 02:45:22 +0000 (+0200) Subject: dumpleases: make host names sanitized to shell-friendly condition X-Git-Tag: 1_25_0~207 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9a512176686d5f1548dc1e1c610af440a3ee0d73;p=oweals%2Fbusybox.git dumpleases: make host names sanitized to shell-friendly condition function old new delta add_lease 271 298 +27 Signed-off-by: Denys Vlasenko --- diff --git a/networking/udhcp/leases.c b/networking/udhcp/leases.c index 745340ad3..844bb60b1 100644 --- a/networking/udhcp/leases.c +++ b/networking/udhcp/leases.c @@ -65,10 +65,15 @@ struct dyn_lease* FAST_FUNC add_lease( if (hostname_len > sizeof(oldest->hostname)) hostname_len = sizeof(oldest->hostname); p = safe_strncpy(oldest->hostname, hostname, hostname_len); - /* sanitization (s/non-ASCII/^/g) */ + /* + * Sanitization (s/bad_char/./g). + * The intent is not to allow only "DNS-valid" hostnames, + * but merely make dumpleases output safe for shells to use. + * We accept "0-9A-Za-z._-", all other chars turn to dots. + */ while (*p) { - if (*p < ' ' || *p > 126) - *p = '^'; + if (!isalnum(*p) && *p != '-' && *p != '_') + *p = '.'; p++; } }