[PATCH 21.5] gnuserv leaks file descriptors

Jerry James <[email protected]> Fri, 5 Dec 2014 16:09:37 -0700
Newsgroups gmane.emacs.xemacs.patches
Message-ID <CAHCOHQkOV_1sCqb983jD_odRr19eHeU0OLUr-Rxuj+8bVeZ5Sg@mail.gmail.com>
PATCH 21.5

Coverity Scan reports that gnuserv is leaking file descriptors.  While
fixing that, I noticed that handle_unix_request() calls echo_request()
even when accept() returns -1, which isn't right.  This patch fixes
both problems.

diff -r b8316d3409cd lib-src/ChangeLog
--- a/lib-src/ChangeLog Fri Nov 28 00:18:03 2014 +0000
+++ b/lib-src/ChangeLog Fri Dec 05 16:07:44 2014 -0700
@@ -1,3 +1,8 @@
+2014-12-05  Jerry James  <[email protected]>
+
+ * gnuserv.c (echo_request): close the socket when done
+ (handle_unix_request): do not call echo_request on accept failure
+
 2014-10-18  Aidan Kehoe  <[email protected]>

  * ootags.c (substitute):
diff -r b8316d3409cd lib-src/gnuserv.c
--- a/lib-src/gnuserv.c Fri Nov 28 00:18:03 2014 +0000
+++ b/lib-src/gnuserv.c Fri Dec 05 16:07:44 2014 -0700
@@ -321,6 +321,7 @@
     exit(1);
   } /* if */

+  close(s);
 } /* echo_request */


@@ -858,6 +859,7 @@
     {
       perror(progname);
       fprintf(stderr,"%s: unable to accept\n",progname);
+      return;
     } /* if */

   echo_request(s);

-- 
Jerry James
http://www.jamezone.org/