Fixed a segfault bug when a fnetnode connect fails.
authorFredrik Tolf <fredrik@dolda2000.com>
Fri, 31 Oct 2008 14:39:29 +0000 (15:39 +0100)
committerFredrik Tolf <fredrik@dolda2000.com>
Fri, 31 Oct 2008 14:40:41 +0000 (15:40 +0100)
daemon/filenet.c

index 64870d2..18c74ef 100644 (file)
@@ -180,12 +180,17 @@ static void conncb(struct socket *sk, int err, struct fnetnode *data)
 
 static void resolvecb(struct sockaddr *addr, int addrlen, struct fnetnode *data)
 {
-    if(addr == NULL)
+    struct socket *sk;
+    
+    sk = NULL;
+    if(addr != NULL)
+       sk = netcsconn(addr, addrlen, (void (*)(struct socket *, int, void *))conncb, data);
+    if(sk == NULL)
     {
        killfnetnode(data);
        putfnetnode(data);
     } else {
-       putsock(netcsconn(addr, addrlen, (void (*)(struct socket *, int, void *))conncb, data));
+       putsock(sk);
     }
 }