diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/env/Makefile | 3 | ||||
| -rw-r--r-- | tools/env/fw_env.c | 9 | 
2 files changed, 12 insertions, 0 deletions
diff --git a/tools/env/Makefile b/tools/env/Makefile index ab73c8c74..0e798e094 100644 --- a/tools/env/Makefile +++ b/tools/env/Makefile @@ -24,12 +24,15 @@  include $(TOPDIR)/config.mk  HOSTSRCS := $(SRCTREE)/lib/crc32.c  fw_env.c  fw_env_main.c +HOSTSRCS += $(SRCTREE)/lib/ctype.c $(SRCTREE)/lib/linux_string.c +HOSTSRCS += $(SRCTREE)/common/env_attr.c $(SRCTREE)/common/env_flags.c  HEADERS	:= fw_env.h $(OBJTREE)/include/config.h  # Compile for a hosted environment on the target  HOSTCPPFLAGS  = -idirafter $(SRCTREE)/include \  		-idirafter $(OBJTREE)/include2 \  		-idirafter $(OBJTREE)/include \ +		-idirafter $(SRCTREE)/tools/env \  		-DUSE_HOSTCC \  		-DTEXT_BASE=$(TEXT_BASE) diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index 9b023e807..5be36fc35 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -25,6 +25,7 @@   */  #include <errno.h> +#include <env_flags.h>  #include <fcntl.h>  #include <linux/stringify.h>  #include <stdio.h> @@ -395,6 +396,9 @@ int fw_setenv(int argc, char *argv[])  	name = argv[1]; +	if (env_flags_validate_env_set_params(argc, argv) < 0) +		return 1; +  	len = 0;  	for (i = 2; i < argc; ++i) {  		char *val = argv[i]; @@ -516,6 +520,11 @@ int fw_parse_script(char *fname)  			name, val ? val : " removed");  #endif +		if (env_flags_validate_type(name, val) < 0) { +			ret = -1; +			break; +		} +  		/*  		 * If there is an error setting a variable,  		 * try to save the environment and returns an error  |