summaryrefslogtreecommitdiffstats
path: root/dhcpcd.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2013-12-02 20:45:19 +0000
committerRoy Marples <roy@marples.name>2013-12-02 20:45:19 +0000
commitd9fbb118757914d2a31583644bd25b486a1e13bb (patch)
tree1e164da04367847298560dd73c3700fa297257a8 /dhcpcd.c
parent3d3b4b1a42c126d96ed8463b42313193b96629bf (diff)
downloaddhcpcd-d9fbb118757914d2a31583644bd25b486a1e13bb.tar.xz
Fix a crash freeing our embedded config
Diffstat (limited to 'dhcpcd.c')
-rw-r--r--dhcpcd.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/dhcpcd.c b/dhcpcd.c
index 9137a65e..5288ed7c 100644
--- a/dhcpcd.c
+++ b/dhcpcd.c
@@ -140,6 +140,7 @@ free_globals(void)
{
int i;
size_t n;
+ struct dhcp_opt *opt;
for (i = 0; i < ifac; i++)
free(ifav[i]);
@@ -149,13 +150,13 @@ free_globals(void)
free(ifdv);
#ifdef INET
- for (n = 0; n < dhcp_opts_len; n++)
- free_dhcp_opt_embenc(&dhcp_opts[n]);
+ for (n = 0, opt = dhcp_opts; n < dhcp_opts_len; n++, opt++)
+ free_dhcp_opt_embenc(opt);
free(dhcp_opts);
#endif
#ifdef INET6
- for (n = 0; n < dhcp6_opts_len; n++)
- free_dhcp_opt_embenc(&dhcp6_opts[n]);
+ for (n = 0, opt = dhcp6_opts; n < dhcp6_opts_len; n++, opt++)
+ free_dhcp_opt_embenc(opt);
free(dhcp6_opts);
#endif
}