summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/printing/nt_printing.c8
-rw-r--r--source/smbd/lanman.c12
2 files changed, 14 insertions, 6 deletions
diff --git a/source/printing/nt_printing.c b/source/printing/nt_printing.c
index 3a6ab9256bd..e666c1d6a72 100644
--- a/source/printing/nt_printing.c
+++ b/source/printing/nt_printing.c
@@ -1678,6 +1678,14 @@ BOOL print_access_check(struct current_user *user, int snum,
BOOL result;
char *pname;
int i;
+
+ /* If the user is NULL then we are being called by the lanman
+ printing system. Let the lower level printing permissions
+ handle this. */
+
+ if (user == NULL) {
+ return True;
+ }
/* Get printer name */
diff --git a/source/smbd/lanman.c b/source/smbd/lanman.c
index bf635b88b10..82f0c25fa86 100644
--- a/source/smbd/lanman.c
+++ b/source/smbd/lanman.c
@@ -1773,13 +1773,13 @@ static BOOL api_RDosPrintJobDel(connection_struct *conn,uint16 vuid, char *param
switch (function) {
case 81: /* delete */
- if (print_job_delete(jobid, vuid)) errcode = NERR_Success;
+ if (print_job_delete(NULL, jobid)) errcode = NERR_Success;
break;
case 82: /* pause */
- if (print_job_pause(jobid, vuid)) errcode = NERR_Success;
+ if (print_job_pause(NULL, jobid)) errcode = NERR_Success;
break;
case 83: /* resume */
- if (print_job_resume(jobid, vuid)) errcode = NERR_Success;
+ if (print_job_resume(NULL, jobid)) errcode = NERR_Success;
break;
}
@@ -1822,13 +1822,13 @@ static BOOL api_WPrintQueuePurge(connection_struct *conn,uint16 vuid, char *para
switch (function) {
case 74: /* Pause queue */
- if (print_queue_pause(snum, vuid)) errcode = NERR_Success;
+ if (print_queue_pause(NULL, snum)) errcode = NERR_Success;
break;
case 75: /* Resume queue */
- if (print_queue_resume(snum, vuid)) errcode = NERR_Success;
+ if (print_queue_resume(NULL, snum)) errcode = NERR_Success;
break;
case 103: /* Purge */
- if (print_queue_purge(snum, vuid)) errcode = NERR_Success;
+ if (print_queue_purge(NULL, snum)) errcode = NERR_Success;
break;
}