]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 'maint'
authorAndre Noll <maan@tuebingen.mpg.de>
Sat, 14 May 2022 15:21:42 +0000 (17:21 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Sat, 14 May 2022 15:21:42 +0000 (17:21 +0200)
To get the single fix that was just merged to maint.

* maint:
  server: Fix memory leak at exit.

1  2 
server.c

diff --combined server.c
index cb32d4d962e129ccf3589fa2ba3db8eb72e18984,d51e4e0bfe5b33c341ff744eda4f9380bd666844..1020e4fed98ac03d0981d80d517e68abf6e3a76f
+++ b/server.c
@@@ -2,6 -2,31 +2,6 @@@
  
  /** \file server.c Paraslash's main server. */
  
 -/**
 - * \mainpage Main data structures and selected APIs:
 - *
 - *    - Senders: \ref sender,
 - *    - Audio file selector: \ref afs_info, \ref afs_table,
 - *    - Audio format handler: \ref audio_format_handler, \ref afh_info
 - *    - Receivers/filters/writers: \ref receiver, \ref receiver_node,
 - *      \ref filter, \ref filter_node, \ref writer_node, \ref writer.
 - *    - Scheduling: \ref sched.h,
 - *    - Buffer trees: \ref buffer_tree.h,
 - *    - Sideband API: \ref sideband.h,
 - *    - Crypto: \ref crypt.h, \ref crypt_backend.h,
 - *    - Error subsystem: \ref error.h,
 - *    - Inter process communication: \ref ipc.h,
 - *    - Forward error correction: \ref fec.h,
 - *    - Daemons: \ref daemon.h,
 - *    - Mixer API: \ref mix.h,
 - *    - Interactive sessions: \ref interactive.h,
 - *    - File descriptors: \ref fd.h,
 - *    - Signals: \ref signal.h,
 - *    - Networking: \ref net.h,
 - *    - Time: \ref time.c,
 - *    - Doubly linked lists: \ref list.h.
 - */
 -
  #include <netinet/in.h>
  #include <sys/socket.h>
  #include <signal.h>
@@@ -407,15 -432,16 +407,16 @@@ static int command_post_select(struct s
  
        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,