Sophie

Sophie

distrib > Mandriva > 2009.1 > i586 > media > main-release-src > by-pkgid > afd38ff40ea3357d6a9233726f14c62e > files > 9

ez-ipupdate-3.0.11b8-9mdv2009.1.src.rpm

--- ../ez-ipupdate-3.0.11b8/cache_file.c        2003-04-17 13:31:04.000000000 -0400
+++ cache_file.c        2005-08-18 14:47:20.417859984 -0400
@@ -133,7 +133,9 @@ int read_cache_file(char *file, time_t *
     ipstr = p;
 
     *date = strtoul(datestr, NULL, 10);
-    *ipaddr = strdup(ipstr);
+
+    if (strcmp(ipstr,"(null)")!=0)
+      *ipaddr = strdup(ipstr);
   }
   else
   {
--- ../ez-ipupdate-3.0.11b8/ez-ipupdate.c       2006-04-09 15:24:03.000000000 -0400
+++ ez-ipupdate.c       2005-08-18 14:44:31.510537800 -0400
@@ -1615,7 +1615,13 @@ int get_if_addr(int sock, char *name, st
   struct ifreq ifr;
 
   memset(&ifr, 0, sizeof(ifr));
-  strcpy(ifr.ifr_name, name);
+
+  if (name == NULL) {
+    dprintf((stderr, "get_if_addr called with name == NULL\n"));
+  } else {
+    strcpy(ifr.ifr_name, name);
+  }
+
   /* why does this need to be done twice? */
   if(ioctl(sock, SIOCGIFADDR, &ifr) < 0) 
   { 
@@ -4748,7 +4754,7 @@ int main(int argc, char **argv)
       if(ipstr != NULL)
       {
 
-        if(address == NULL || *address == '\0')
+        if((address == NULL || *address == '\0') && interface != NULL)
         {
 #ifdef IF_LOOKUP
           struct sockaddr_in sin;