diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2014-06-16 00:17:00 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2014-06-16 00:17:00 +0200 |
commit | 85090c162b322a4ffe53d251e59bbfc212a829ee (patch) | |
tree | 1b547e8c14ddafcb853e46eaff6724c212326123 | |
parent | 9aa6ffb22b712d4e928604e291f954b02237e8cd (diff) | |
download | busybox-w32-85090c162b322a4ffe53d251e59bbfc212a829ee.tar.gz busybox-w32-85090c162b322a4ffe53d251e59bbfc212a829ee.tar.bz2 busybox-w32-85090c162b322a4ffe53d251e59bbfc212a829ee.zip |
udhcpc: make hostname sanitization optional. Closes 3979
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | networking/udhcp/Config.src | 11 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/networking/udhcp/Config.src b/networking/udhcp/Config.src index 6bfa398ea..c34c8d6f0 100644 --- a/networking/udhcp/Config.src +++ b/networking/udhcp/Config.src | |||
@@ -84,6 +84,17 @@ config FEATURE_UDHCPC_ARPING | |||
84 | will DHCPDECLINE the offer if the address is in use, | 84 | will DHCPDECLINE the offer if the address is in use, |
85 | and restart the discover process. | 85 | and restart the discover process. |
86 | 86 | ||
87 | config FEATURE_UDHCPC_SANITIZEOPT | ||
88 | bool "Do not pass malformed host and domain names" | ||
89 | default y | ||
90 | depends on UDHCPC | ||
91 | help | ||
92 | If selected, udhcpc will check some options (such as option 12 - | ||
93 | hostname) and if they don't look like valid hostnames | ||
94 | (for example, if they start with dash or contain spaces), | ||
95 | they will be replaced with string "bad" when exporting | ||
96 | to the environment. | ||
97 | |||
87 | config FEATURE_UDHCP_PORT | 98 | config FEATURE_UDHCP_PORT |
88 | bool "Enable '-P port' option for udhcpd and udhcpc" | 99 | bool "Enable '-P port' option for udhcpd and udhcpc" |
89 | default n | 100 | default n |
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 7dfc160e2..e468b7bbb 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -136,6 +136,7 @@ static int mton(uint32_t mask) | |||
136 | return i; | 136 | return i; |
137 | } | 137 | } |
138 | 138 | ||
139 | #if ENABLE_FEATURE_UDHCPC_SANITIZEOPT | ||
139 | /* Check if a given label represents a valid DNS label | 140 | /* Check if a given label represents a valid DNS label |
140 | * Return pointer to the first character after the label upon success, | 141 | * Return pointer to the first character after the label upon success, |
141 | * NULL otherwise. | 142 | * NULL otherwise. |
@@ -192,6 +193,9 @@ static int good_hostname(const char *name) | |||
192 | name++; | 193 | name++; |
193 | } | 194 | } |
194 | } | 195 | } |
196 | #else | ||
197 | # define good_hostname(name) 1 | ||
198 | #endif | ||
195 | 199 | ||
196 | /* Create "opt_name=opt_value" string */ | 200 | /* Create "opt_name=opt_value" string */ |
197 | static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_optflag *optflag, const char *opt_name) | 201 | static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_optflag *optflag, const char *opt_name) |