segfault in upnp code (tip of the proverbial iceberg?)
authorNathan S. Evans <evans@in.tum.de>
Sat, 5 Feb 2011 12:30:56 +0000 (12:30 +0000)
committerNathan S. Evans <evans@in.tum.de>
Sat, 5 Feb 2011 12:30:56 +0000 (12:30 +0000)
src/nat/upnp.c

index bdb479da16365d74387f044f2b6b2d92ed781e4f..45c7df41994220a3914802684b7400e3e727bb8d 100644 (file)
@@ -67,7 +67,7 @@ struct GNUNET_NAT_UPNP_Handle
   unsigned int is_mapped;
   enum UPNP_State state;
   struct sockaddr *ext_addr;
-  const char *iface;
+  char *iface;
   int processing;
   GNUNET_NAT_UPNP_pulse_cb pulse_cb;
   void *pulse_cls;
@@ -79,10 +79,10 @@ process_if (void *cls,
             int isDefault, const struct sockaddr *addr, socklen_t addrlen)
 {
   struct GNUNET_NAT_UPNP_Handle *upnp = cls;
-
+  GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "UPNP found if `%s'\n", name);
   if (addr && GNUNET_NAT_cmp_addr (upnp->addr, addr) == 0)
     {
-      upnp->iface = name;       // BADNESS!
+      upnp->iface = GNUNET_strdup(name);       // BADNESS!
       return GNUNET_SYSERR;
     }