s3-lanman: before trying to call spoolss_ClosePrinter make sure we have a connection.
authorGünther Deschner <gd@samba.org>
Mon, 3 May 2010 15:02:21 +0000 (17:02 +0200)
committerGünther Deschner <gd@samba.org>
Mon, 3 May 2010 15:04:00 +0000 (17:04 +0200)
Guenther

source3/smbd/lanman.c

index ec87dbb0b87b48fe1dbd2c487b70fa5bb3aedb43..affce70f40300df370cbc4e5e8b88f9b4e3147fc 100644 (file)
@@ -936,7 +936,7 @@ static bool api_DosPrintQGetInfo(connection_struct *conn, uint16 vuid,
                desc.errcode = ERRbuftoosmall;
 
  out:
                desc.errcode = ERRbuftoosmall;
 
  out:
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -1133,7 +1133,7 @@ static bool api_DosPrintQEnum(connection_struct *conn, uint16 vuid,
                subcntarr[i] = num_jobs;
                subcnt += subcntarr[i];
 
                subcntarr[i] = num_jobs;
                subcnt += subcntarr[i];
 
-               if (is_valid_policy_hnd(&handle)) {
+               if (cli && is_valid_policy_hnd(&handle)) {
                        rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
                }
        }
                        rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
                }
        }
@@ -3128,7 +3128,7 @@ static bool api_RDosPrintJobDel(connection_struct *conn,uint16 vuid,
        }
 
  out:
        }
 
  out:
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -3257,7 +3257,7 @@ static bool api_WPrintQueueCtrl(connection_struct *conn,uint16 vuid,
 
  out:
 
 
  out:
 
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -3437,7 +3437,7 @@ static bool api_PrintJobInfo(connection_struct *conn, uint16 vuid,
        errcode = NERR_Success;
  out:
 
        errcode = NERR_Success;
  out:
 
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -4411,7 +4411,7 @@ static bool api_WPrintJobGetInfo(connection_struct *conn, uint16 vuid,
                *rdata_len = 0;
        }
  out:
                *rdata_len = 0;
        }
  out:
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -4544,7 +4544,7 @@ static bool api_WPrintJobEnumerate(connection_struct *conn, uint16 vuid,
                }
        }
  out:
                }
        }
  out:
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
@@ -4742,7 +4742,7 @@ static bool api_WPrintDestGetInfo(connection_struct *conn, uint16 vuid,
        }
 
  out:
        }
 
  out:
-       if (is_valid_policy_hnd(&handle)) {
+       if (cli && is_valid_policy_hnd(&handle)) {
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }
 
                rpccli_spoolss_ClosePrinter(cli, mem_ctx, &handle, NULL);
        }