diff options
author | Renato Botelho <renato@netgate.com> | 2016-08-12 15:03:23 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-08-12 15:03:23 -0300 |
commit | 9156c9a1c2ee169229f894fb332a9b7a110db3d8 (patch) | |
tree | dd3f771d2cfac8a5a2a446c6b9370be7022ce825 /sbin | |
parent | 529a654ae2c9fb892722782dd056e36119dfac5a (diff) | |
parent | 31dd439280dad5066313b92d89838db63d850228 (diff) | |
download | FreeBSD-src-9156c9a1c2ee169229f894fb332a9b7a110db3d8.zip FreeBSD-src-9156c9a1c2ee169229f894fb332a9b7a110db3d8.tar.gz |
Merge remote-tracking branch 'origin/releng/10.3' into RELENG_2_3
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/dhclient/dhclient.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/sbin/dhclient/dhclient.c b/sbin/dhclient/dhclient.c index 97f9d47..b173eb2 100644 --- a/sbin/dhclient/dhclient.c +++ b/sbin/dhclient/dhclient.c @@ -2277,6 +2277,17 @@ script_set_env(struct client_state *client, const char *prefix, { int i, j, namelen; + /* No `` or $() command substitution allowed in environment values! */ + for (j=0; j < strlen(value); j++) + switch (value[j]) { + case '`': + case '$': + warning("illegal character (%c) in value '%s'", + value[j], value); + /* Ignore this option */ + return; + } + namelen = strlen(name); for (i = 0; client->scriptEnv[i]; i++) @@ -2313,16 +2324,6 @@ script_set_env(struct client_state *client, const char *prefix, strlen(value) + 1); if (client->scriptEnv[i] == NULL) error("script_set_env: no memory for variable assignment"); - - /* No `` or $() command substitution allowed in environment values! */ - for (j=0; j < strlen(value); j++) - switch (value[j]) { - case '`': - case '$': - error("illegal character (%c) in value '%s'", value[j], - value); - /* not reached */ - } snprintf(client->scriptEnv[i], strlen(prefix) + strlen(name) + 1 + strlen(value) + 1, "%s%s=%s", prefix, name, value); } |