fix a long standing underallocation bug
authorRuss Dill <Russ.Dill@asu.edu>
Wed, 24 Dec 2003 19:57:13 +0000 (19:57 -0000)
committerRuss Dill <Russ.Dill@asu.edu>
Wed, 24 Dec 2003 19:57:13 +0000 (19:57 -0000)
networking/udhcp/script.c

index 1f74cd7..24688b5 100644 (file)
@@ -146,8 +146,11 @@ static char **fill_envp(struct dhcpMessage *packet)
                num_options = 0;
        else {
                for (i = 0; dhcp_options[i].code; i++)
-                       if (get_option(packet, dhcp_options[i].code))
+                       if (get_option(packet, dhcp_options[i].code)) {
                                num_options++;
+                               if (dhcp_options[i].code == DHCP_SUBNET)
+                                       num_options++; /* for mton */
+                       }
                if (packet->siaddr) num_options++;
                if ((temp = get_option(packet, DHCP_OPTION_OVER)))
                        over = *temp;
@@ -194,7 +197,7 @@ static char **fill_envp(struct dhcpMessage *packet)
                /* watch out for invalid packets */
                packet->sname[sizeof(packet->sname) - 1] = '\0';
                asprintf(&envp[j++], "sname=%s", packet->sname);
-       }       
+       }
        return envp;
 }