Fix a file descriptor leak in add_port_hook
authorVolker Lendecke <vl@samba.org>
Sat, 28 Jun 2008 14:09:34 +0000 (16:09 +0200)
committerVolker Lendecke <vl@samba.org>
Sat, 28 Jun 2008 14:10:01 +0000 (16:10 +0200)
This was probably cut&paste from add_printer_hook which further down has the
unconditional close(fd). In add_port_hook() we're not interested in the output
of 'addport command', so don't create the out fd.

source/rpc_server/srv_spoolss_nt.c

index f3129ac3536d5f8b0f6a5b7582fde8458e32b89a..5fff9008758fd0fef7cf2d8bb036860c6c5d1698 100644 (file)
@@ -6155,7 +6155,6 @@ WERROR add_port_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, const char *portname
        char *cmd = lp_addport_cmd();
        char *command = NULL;
        int ret;
-       int fd;
        SE_PRIV se_printop = SE_PRINT_OPERATOR;
        bool is_print_op = False;
 
@@ -6179,7 +6178,7 @@ WERROR add_port_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, const char *portname
        if ( is_print_op )
                become_root();
 
-       ret = smbrun(command, &fd);
+       ret = smbrun(command, NULL);
 
        if ( is_print_op )
                unbecome_root();
@@ -6191,8 +6190,6 @@ WERROR add_port_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, const char *portname
        TALLOC_FREE(command);
 
        if ( ret != 0 ) {
-               if (fd != -1)
-                       close(fd);
                return WERR_ACCESS_DENIED;
        }