]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-daemon: Fix CID 1125627 Resource leak (RESOURCE_LEAK)
authorMartin Schwenke <martin@meltin.net>
Fri, 5 Aug 2016 06:50:58 +0000 (16:50 +1000)
committerKarolin Seeger <kseeger@samba.org>
Wed, 10 Aug 2016 09:37:23 +0000 (11:37 +0200)
Also fixes CID 1125628.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12110

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit 940272d215049f5f5079aa926e69eae1985a4bfa)

ctdb/server/ctdb_logging.c

index 129bdc9e7f65e333c739fb030cba96dcfef988ac..a72d8bf84438af972f9d5615eeaebaae5fb6df32 100644 (file)
@@ -269,9 +269,14 @@ int ctdb_set_child_logging(struct ctdb_context *ctdb)
 
        /* We'll fail if stderr/stdout not already open; it's simpler. */
        old_stdout = dup(STDOUT_FILENO);
+       if (old_stdout < 0) {
+               DEBUG(DEBUG_ERR, ("Failed to dup stdout for child logging\n"));
+               return -1;
+       }
        old_stderr = dup(STDERR_FILENO);
-       if (old_stdout < 0 || old_stderr < 0) {
-               DEBUG(DEBUG_ERR, ("Failed to dup stdout/stderr for child logging\n"));
+       if (old_stderr < 0) {
+               DEBUG(DEBUG_ERR, ("Failed to dup stderr for child logging\n"));
+               close(old_stdout);
                return -1;
        }
        if (dup2(p[1], STDOUT_FILENO) < 0 || dup2(p[1], STDERR_FILENO) < 0) {