diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-08-28 04:42:31 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-08-28 04:42:31 +0000 |
commit | 9e1f9a5719315aaa9b184fc5b0a750c68fbd8941 (patch) | |
tree | 736a30deb469db48b63c639f914b9e9b66923e5c /source3/rpc_server/srv_spoolss.c | |
parent | 4ff15c319eb70396f2534fb8c165b7f71c58b311 (diff) | |
download | samba-9e1f9a5719315aaa9b184fc5b0a750c68fbd8941.tar.gz samba-9e1f9a5719315aaa9b184fc5b0a750c68fbd8941.tar.bz2 samba-9e1f9a5719315aaa9b184fc5b0a750c68fbd8941.zip |
yipee!
The spoolss AddJob function has an [in,out] buffer not an [in] buffer
(despite the comment in the code to the contrary). Also, we must fail
this function - not just blindly reply "no problem" as AddJob should
always fail on non-local printers.
This fixes a bug where the "print test page" failed about half the
time. I suspect it will also fix a bunch of other intermittent spoolss
bugs where the client (incorrectly) tries to use the AddJob printing
interface.
(This used to be commit 14e534a8907c34b53e00a63756efd71903ff9432)
Diffstat (limited to 'source3/rpc_server/srv_spoolss.c')
-rwxr-xr-x | source3/rpc_server/srv_spoolss.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source3/rpc_server/srv_spoolss.c b/source3/rpc_server/srv_spoolss.c index 8b431551b5..5a1592e4fb 100755 --- a/source3/rpc_server/srv_spoolss.c +++ b/source3/rpc_server/srv_spoolss.c @@ -591,10 +591,11 @@ static BOOL api_spoolss_addjob(pipes_struct *p) return False; } - /* that's only an [in] buffer ! */ + /* that's an [in out] buffer (despite appearences to the contrary) */ + new_spoolss_move_buffer(q_u.buffer, &r_u.buffer); r_u.status = _spoolss_addjob(&q_u.handle, q_u.level, - q_u.buffer, q_u.offered); + r_u.buffer, q_u.offered, &r_u.needed); if(!spoolss_io_r_addjob("",&r_u,rdata,0)) { DEBUG(0,("spoolss_io_r_addjob: unable to marshall SPOOL_R_ADDJOB.\n")); |