diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2015-10-24 04:45:22 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-10-24 04:45:22 +0200 |
commit | 9a512176686d5f1548dc1e1c610af440a3ee0d73 (patch) | |
tree | 06fe3e63ae4879e8efa4282203a4db6a8088e718 | |
parent | 941e7a491971574e5d06227f8dc63806335b8745 (diff) | |
download | busybox-w32-9a512176686d5f1548dc1e1c610af440a3ee0d73.tar.gz busybox-w32-9a512176686d5f1548dc1e1c610af440a3ee0d73.tar.bz2 busybox-w32-9a512176686d5f1548dc1e1c610af440a3ee0d73.zip |
dumpleases: make host names sanitized to shell-friendly condition
function old new delta
add_lease 271 298 +27
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/udhcp/leases.c | 11 |
1 files changed, 8 insertions, 3 deletions
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( | |||
65 | if (hostname_len > sizeof(oldest->hostname)) | 65 | if (hostname_len > sizeof(oldest->hostname)) |
66 | hostname_len = sizeof(oldest->hostname); | 66 | hostname_len = sizeof(oldest->hostname); |
67 | p = safe_strncpy(oldest->hostname, hostname, hostname_len); | 67 | p = safe_strncpy(oldest->hostname, hostname, hostname_len); |
68 | /* sanitization (s/non-ASCII/^/g) */ | 68 | /* |
69 | * Sanitization (s/bad_char/./g). | ||
70 | * The intent is not to allow only "DNS-valid" hostnames, | ||
71 | * but merely make dumpleases output safe for shells to use. | ||
72 | * We accept "0-9A-Za-z._-", all other chars turn to dots. | ||
73 | */ | ||
69 | while (*p) { | 74 | while (*p) { |
70 | if (*p < ' ' || *p > 126) | 75 | if (!isalnum(*p) && *p != '-' && *p != '_') |
71 | *p = '^'; | 76 | *p = '.'; |
72 | p++; | 77 | p++; |
73 | } | 78 | } |
74 | } | 79 | } |