[git commit] udhcpc: make hostname sanitization optional. Closes 3979

Denys Vlasenko vda.linux at googlemail.com
Sun Jun 15 22:17:00 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=85090c162b322a4ffe53d251e59bbfc212a829ee
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/udhcp/Config.src |   11 +++++++++++
 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 6bfa398..c34c8d6 100644
--- a/networking/udhcp/Config.src
+++ b/networking/udhcp/Config.src
@@ -84,6 +84,17 @@ config FEATURE_UDHCPC_ARPING
 	  will DHCPDECLINE the offer if the address is in use,
 	  and restart the discover process.
 
+config FEATURE_UDHCPC_SANITIZEOPT
+	bool "Do not pass malformed host and domain names"
+	default y
+	depends on UDHCPC
+	help
+	  If selected, udhcpc will check some options (such as option 12 -
+	  hostname) and if they don't look like valid hostnames
+	  (for example, if they start with dash or contain spaces),
+	  they will be replaced with string "bad" when exporting
+	  to the environment.
+
 config FEATURE_UDHCP_PORT
 	bool "Enable '-P port' option for udhcpd and udhcpc"
 	default n
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 7dfc160..e468b7b 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -136,6 +136,7 @@ static int mton(uint32_t mask)
 	return i;
 }
 
+#if ENABLE_FEATURE_UDHCPC_SANITIZEOPT
 /* Check if a given label represents a valid DNS label
  * Return pointer to the first character after the label upon success,
  * NULL otherwise.
@@ -192,6 +193,9 @@ static int good_hostname(const char *name)
 		name++;
 	}
 }
+#else
+# define good_hostname(name) 1
+#endif
 
 /* Create "opt_name=opt_value" string */
 static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_optflag *optflag, const char *opt_name)


More information about the busybox-cvs mailing list