fix ugly access-after-free bug when doing asyncronous NS lookups
authorLennart Poettering <lennart@poettering.net>
Fri, 2 Jun 2006 21:06:38 +0000 (21:06 +0000)
committerLennart Poettering <lennart@poettering.net>
Fri, 2 Jun 2006 21:06:38 +0000 (21:06 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1004 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/polypcore/socket-client.c

index fd840ab..efb6de9 100644 (file)
@@ -376,16 +376,18 @@ static void asyncns_cb(pa_mainloop_api*m, pa_io_event *e, int fd, PA_GCC_UNUSED
     
     asyncns_freeaddrinfo(res);
 
-    goto finish;
-
+    m->io_free(c->asyncns_io_event);
+    c->asyncns_io_event = NULL;
+    return;
+    
 fail:
+    m->io_free(c->asyncns_io_event);
+    c->asyncns_io_event = NULL;
+    
     errno = EHOSTUNREACH;
     do_call(c);
+    return;
     
-finish:
-    
-    m->io_free(c->asyncns_io_event);
-    c->asyncns_io_event = NULL;
 }
 
 #endif