]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - server.c
server: Fix memory leak at exit.
[paraslash.git] / server.c
index 09087f7a72396bf01e51782dbebc1b9d1a82eb7c..d51e4e0bfe5b33c341ff744eda4f9380bd666844 100644 (file)
--- a/server.c
+++ b/server.c
@@ -432,15 +432,16 @@ static int command_post_select(struct sched *s, void *context)
 
        ret = task_get_notification(sct->task);
        if (ret < 0)
-               return ret;
+               goto fail;
        for (n = 0; n < sct->num_listen_fds; n++) {
                ret = command_task_accept(n, s, sct);
-               if (ret < 0) {
-                       free(sct->listen_fds);
-                       return ret;
-               }
+               if (ret < 0)
+                       goto fail;
        }
        return 0;
+fail:
+       free(sct->listen_fds);
+       return ret;
 }
 
 static void init_server_command_task(struct server_command_task *sct,