wrap cli_tdis() in check to make sure we have a valid cnum
authorGerald Carter <jerry@samba.org>
Fri, 19 Mar 2004 15:52:16 +0000 (15:52 +0000)
committerGerald Carter <jerry@samba.org>
Fri, 19 Mar 2004 15:52:16 +0000 (15:52 +0000)
(This used to be commit e54342b062e7736b46f56bcb0e064acc5a7b98ee)

source3/libsmb/clientgen.c

index 28da73894fe485d4bc4f124501f7261c5e10ef48..370249d0474029bcb170d0e287cc0e99c009ec12 100644 (file)
@@ -367,15 +367,16 @@ void cli_nt_netlogon_netsec_session_close(struct cli_state *cli)
 
 void cli_close_connection(struct cli_state *cli)
 {
-        /*
-         * tell our peer to free his resources.  Wihtout this, when an
-         * application attempts to do a graceful shutdown and calls
-         * smbc_free_context() to clean up all connections, some connections
-         * can remain active on the peer end, until some (long) timeout period
-         * later.  This tree disconnect forces the peer to clean up, since the
-         * connection will be going away.
-         */
-        cli_tdis(cli);
+       /*
+        * tell our peer to free his resources.  Wihtout this, when an
+        * application attempts to do a graceful shutdown and calls
+        * smbc_free_context() to clean up all connections, some connections
+        * can remain active on the peer end, until some (long) timeout period
+        * later.  This tree disconnect forces the peer to clean up, since the
+        * connection will be going away.
+        */
+       if ( cli->cnum != -1 )
+               cli_tdis(cli);
         
        cli_nt_session_close(cli);
        cli_nt_netlogon_netsec_session_close(cli);