diff options
author | Jeremy Allison <jra@samba.org> | 2007-02-03 00:50:47 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:17:41 -0500 |
commit | 0e9ad2b29f1c05dc3f5d5e9659fe0557fa077d2e (patch) | |
tree | c33ac217867ed8a13fad73b3e8db30a46dae29b3 /source | |
parent | 45dcf62960c2815c4d8e0c5f4a2d0af24df83290 (diff) | |
download | samba-0e9ad2b29f1c05dc3f5d5e9659fe0557fa077d2e.tar.gz samba-0e9ad2b29f1c05dc3f5d5e9659fe0557fa077d2e.tar.xz samba-0e9ad2b29f1c05dc3f5d5e9659fe0557fa077d2e.zip |
r21129: Fix from Martin Zielinski <mz@seh.de> - ensure
the hand marshalled container size is a multiple
of 4 bytes for RPC alignment.
Jeremy.
Diffstat (limited to 'source')
-rw-r--r-- | source/rpc_server/srv_spoolss_nt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/rpc_server/srv_spoolss_nt.c b/source/rpc_server/srv_spoolss_nt.c index 3270801fc2a..d0a754f281f 100644 --- a/source/rpc_server/srv_spoolss_nt.c +++ b/source/rpc_server/srv_spoolss_nt.c @@ -9532,6 +9532,16 @@ WERROR _spoolss_enumprinterdataex(pipes_struct *p, SPOOL_Q_ENUMPRINTERDATAEX *q_ /* copy data into the reply */ r_u->ctr.size = r_u->needed; + + /* Fix from Martin Zielinski <mz@seh.de> - ensure + * the hand marshalled container size is a multiple + * of 4 bytes for RPC alignment. + */ + + if (needed % 4) { + r_u->ctr.size += 4-(needed % 4); + } + r_u->ctr.size_of_array = r_u->returned; r_u->ctr.values = enum_values; |