diff options
-rw-r--r-- | source/printing/nt_printing.c | 8 | ||||
-rw-r--r-- | source/smbd/lanman.c | 12 |
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; } |