udhcpc: fix my breakage

This commit is contained in:
Denis Vlasenko 2006-11-28 00:21:46 +00:00
parent 1fffe38e01
commit c2f5b02293
2 changed files with 3 additions and 5 deletions

View File

@ -151,10 +151,9 @@ static char **fill_envp(struct dhcpMessage *packet)
envp[j] = xmalloc(sizeof("ip=255.255.255.255")); envp[j] = xmalloc(sizeof("ip=255.255.255.255"));
sprintip(envp[j++], "ip=", (uint8_t *) &packet->yiaddr); sprintip(envp[j++], "ip=", (uint8_t *) &packet->yiaddr);
for (i = 0; dhcp_options[i].code; i++) { for (i = 0; dhcp_options[i].code; i++) {
temp = get_option(packet, dhcp_options[i].code); temp = get_option(packet, dhcp_options[i].code);
if (temp) if (!temp)
continue; continue;
envp[j] = xmalloc(upper_length(temp[OPT_LEN - 2], envp[j] = xmalloc(upper_length(temp[OPT_LEN - 2],
dhcp_options[i].flags & TYPE_MASK) + strlen(dhcp_options[i].name) + 2); dhcp_options[i].flags & TYPE_MASK) + strlen(dhcp_options[i].name) + 2);
@ -205,7 +204,6 @@ void udhcp_run_script(struct dhcpMessage *packet, const char *name)
return; return;
} else if (pid == 0) { } else if (pid == 0) {
/* close fd's? */ /* close fd's? */
/* exec script */ /* exec script */
execle(client_config.script, client_config.script, execle(client_config.script, client_config.script,
name, NULL, envp); name, NULL, envp);

View File

@ -53,7 +53,7 @@ int read_interface(char *interface, int *ifindex, uint32_t *addr, uint8_t *arp)
ifr.ifr_addr.sa_family = AF_INET; ifr.ifr_addr.sa_family = AF_INET;
strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)); strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name));
if (addr) { if (addr) {
if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) { if (ioctl(fd, SIOCGIFADDR, &ifr) != 0) {
bb_perror_msg("SIOCGIFADDR failed, is the interface up and configured?"); bb_perror_msg("SIOCGIFADDR failed, is the interface up and configured?");
close(fd); close(fd);
return -1; return -1;
@ -64,7 +64,7 @@ int read_interface(char *interface, int *ifindex, uint32_t *addr, uint8_t *arp)
} }
if (ifindex) { if (ifindex) {
if (ioctl(fd, SIOCGIFINDEX, &ifr) == 0) { if (ioctl(fd, SIOCGIFINDEX, &ifr) != 0) {
bb_perror_msg("SIOCGIFINDEX failed"); bb_perror_msg("SIOCGIFINDEX failed");
close(fd); close(fd);
return -1; return -1;