summaryrefslogtreecommitdiff
path: root/networking/udhcp/script.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/script.c')
-rw-r--r--networking/udhcp/script.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/networking/udhcp/script.c b/networking/udhcp/script.c
index e0a8dad..820fbb0 100644
--- a/networking/udhcp/script.c
+++ b/networking/udhcp/script.c
@@ -206,21 +206,22 @@ static char **fill_envp(struct dhcpMessage *packet)
void run_script(struct dhcpMessage *packet, const char *name)
{
int pid;
- char **envp;
+ char **envp, **curr;
if (client_config.script == NULL)
return;
DEBUG(LOG_INFO, "vforking and execle'ing %s", client_config.script);
+ envp = fill_envp(packet);
/* call script */
pid = vfork();
if (pid) {
waitpid(pid, NULL, 0);
+ for (curr = envp; *curr; curr++) free(*curr);
+ free(envp);
return;
} else if (pid == 0) {
- envp = fill_envp(packet);
-
/* close fd's? */
/* exec script */