Changeset View
Changeset View
Standalone View
Standalone View
stand/common/commands.c
Show First 20 Lines • Show All 298 Lines • ▼ Show 20 Lines | |||||
command_set(int argc, char *argv[]) | command_set(int argc, char *argv[]) | ||||
{ | { | ||||
int err; | int err; | ||||
if (argc != 2) { | if (argc != 2) { | ||||
command_errmsg = "wrong number of arguments"; | command_errmsg = "wrong number of arguments"; | ||||
return (CMD_ERROR); | return (CMD_ERROR); | ||||
} else { | } else { | ||||
#ifdef LOADER_VERIEXEC | |||||
/* | |||||
* Impose restrictions if input is not verified | |||||
*/ | |||||
const char *restricted[] = { | |||||
"boot", | |||||
"init", | |||||
"loader.ve.", | |||||
"rootfs", | |||||
"secur", | |||||
"vfs.", | |||||
NULL, | |||||
}; | |||||
const char **cp; | |||||
int ves; | |||||
ves = ve_status_get(-1); | |||||
if (ves == VE_UNVERIFIED_OK) { | |||||
#ifdef LOADER_VERIEXEC_TESTING | |||||
printf("Checking: %s\n", argv[1]); | |||||
#endif | |||||
for (cp = restricted; *cp; cp++) { | |||||
if (strncmp(argv[1], *cp, strlen(*cp)) == 0) { | |||||
printf("Ignoring restricted variable: %s\n", | |||||
argv[1]); | |||||
return(CMD_OK); | |||||
} | |||||
} | |||||
} | |||||
#endif | |||||
if ((err = putenv(argv[1])) != 0) { | if ((err = putenv(argv[1])) != 0) { | ||||
command_errmsg = strerror(err); | command_errmsg = strerror(err); | ||||
return (CMD_ERROR); | return (CMD_ERROR); | ||||
} | } | ||||
} | } | ||||
return (CMD_OK); | return (CMD_OK); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 206 Lines • Show Last 20 Lines |