udhcpc: make hostname sanitization optional. Closes 3979
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user