diff options
author | Jeremy Allison <jra@samba.org> | 2008-05-06 11:23:24 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-05-06 11:23:24 -0700 |
commit | 366aa23becaf99867fdc09e4e6cb06aa10b7edac (patch) | |
tree | 74577b04ab9339122e2addd131ece5bacd80c513 | |
parent | 69270e390c468f71db95452525903d87d2d6c42c (diff) | |
download | samba-366aa23becaf99867fdc09e4e6cb06aa10b7edac.tar.gz samba-366aa23becaf99867fdc09e4e6cb06aa10b7edac.tar.xz samba-366aa23becaf99867fdc09e4e6cb06aa10b7edac.zip |
Merge 3fc1ab210b8772ee9f867499c0b1a7bb4bcdd285 from 3.2.
The first of Martin Zielinski <mz@seh.de> Vista printing patches.
Jerry will test and should get into 3.2 final (and the next 3.0.x
release).
Jeremy.
-rw-r--r-- | source/rpc_parse/parse_spoolss.c | 7 | ||||
-rw-r--r-- | source/rpc_server/srv_spoolss_nt.c | 9 |
2 files changed, 13 insertions, 3 deletions
diff --git a/source/rpc_parse/parse_spoolss.c b/source/rpc_parse/parse_spoolss.c index 38141515dc1..ba8a32709b7 100644 --- a/source/rpc_parse/parse_spoolss.c +++ b/source/rpc_parse/parse_spoolss.c @@ -2130,7 +2130,12 @@ static BOOL smb_io_reldevmode(const char *desc, RPC_BUFFER *buffer, int depth, D } buffer->string_at_end -= ((*devmode)->size + (*devmode)->driverextra); - + + /* mz: we have to align the device mode for VISTA */ + if (buffer->string_at_end % 4) { + buffer->string_at_end += 4 - (buffer->string_at_end % 4); + } + if(!prs_set_offset(ps, buffer->string_at_end)) return False; diff --git a/source/rpc_server/srv_spoolss_nt.c b/source/rpc_server/srv_spoolss_nt.c index 40ad81a4495..5ccc91c8288 100644 --- a/source/rpc_server/srv_spoolss_nt.c +++ b/source/rpc_server/srv_spoolss_nt.c @@ -9476,8 +9476,13 @@ WERROR _spoolss_enumprinterdataex(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATAEX *q_ } /* copy data into the reply */ - - r_u->ctr.size = r_u->needed; + + /* mz: Vista x64 returns 0x6f7 (The stub received bad data), if the + response buffer size is != the offered buffer size + + r_u->ctr.size = r_u->needed; + */ + r_u->ctr.size = in_size; r_u->ctr.size_of_array = r_u->returned; r_u->ctr.values = enum_values; |