summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-08-12 15:03:23 -0300
committerRenato Botelho <renato@netgate.com>2016-08-12 15:03:23 -0300
commit9156c9a1c2ee169229f894fb332a9b7a110db3d8 (patch)
treedd3f771d2cfac8a5a2a446c6b9370be7022ce825 /sbin
parent529a654ae2c9fb892722782dd056e36119dfac5a (diff)
parent31dd439280dad5066313b92d89838db63d850228 (diff)
downloadFreeBSD-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.c21
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);
}
OpenPOWER on IntegriCloud