diff -Naur dhcp-4.2.4-P2/common/discover.c dhcp-4.2.4-P2.fixed/common/discover.c --- dhcp-4.2.4-P2/common/discover.c 2012-08-24 19:11:21.000000000 +0000 +++ dhcp-4.2.4-P2.fixed/common/discover.c 2012-10-02 18:05:29.353084310 +0000 @@ -455,7 +455,7 @@ } #ifdef DHCPv6 - if (local_family == AF_INET6) { + if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) { ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); if (ifaces->fp6 == NULL) { log_error("Error opening '/proc/net/if_inet6' to " @@ -466,6 +466,8 @@ ifaces->fp = NULL; return 0; } + } else { + ifaces->fp6 = NULL; } #endif @@ -733,7 +735,7 @@ return 1; } #ifdef DHCPv6 - if (!(*err)) { + if (!(*err) && ifaces->fp6) { if (local_family == AF_INET6) return next_iface6(info, err, ifaces); } @@ -752,7 +754,8 @@ ifaces->sock = -1; #ifdef DHCPv6 if (local_family == AF_INET6) { - fclose(ifaces->fp6); + if(ifaces->fp6) + fclose(ifaces->fp6); ifaces->fp6 = NULL; } #endif