mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s3: Fix bug 8371
ndr_set_flag or's in the given flag (ALIGN4). At this point, ndr->flags contains NOALIGN, which will persist. In ndr_push_DATA_BLOB NOALIGN overrides everything else, so that the ALIGN4 is not respected. Autobuild-User: Volker Lendecke <vlendec@samba.org> Autobuild-Date: Fri Nov 18 09:33:37 CET 2011 on sn-devel-104
This commit is contained in:
parent
cd3f552f4f
commit
2642f38588
@ -234,6 +234,7 @@ enum ndr_err_code ndr_push_NETLOGON_SAM_LOGON_REQUEST(struct ndr_push *ndr, int
|
|||||||
if (ndr_size_dom_sid0(&r->sid, ndr->flags)) {
|
if (ndr_size_dom_sid0(&r->sid, ndr->flags)) {
|
||||||
struct ndr_push *_ndr_sid;
|
struct ndr_push *_ndr_sid;
|
||||||
uint32_t _flags_save_DATA_BLOB = ndr->flags;
|
uint32_t _flags_save_DATA_BLOB = ndr->flags;
|
||||||
|
ndr->flags &= ~LIBNDR_FLAG_NOALIGN;
|
||||||
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
|
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
|
||||||
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
|
NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->_pad));
|
||||||
ndr->flags = _flags_save_DATA_BLOB;
|
ndr->flags = _flags_save_DATA_BLOB;
|
||||||
@ -279,6 +280,7 @@ enum ndr_err_code ndr_pull_NETLOGON_SAM_LOGON_REQUEST(struct ndr_pull *ndr, int
|
|||||||
if (r->sid_size) {
|
if (r->sid_size) {
|
||||||
uint32_t _flags_save_DATA_BLOB = ndr->flags;
|
uint32_t _flags_save_DATA_BLOB = ndr->flags;
|
||||||
struct ndr_pull *_ndr_sid;
|
struct ndr_pull *_ndr_sid;
|
||||||
|
ndr->flags &= ~LIBNDR_FLAG_NOALIGN;
|
||||||
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
|
ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
|
||||||
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
|
NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->_pad));
|
||||||
ndr->flags = _flags_save_DATA_BLOB;
|
ndr->flags = _flags_save_DATA_BLOB;
|
||||||
|
Loading…
Reference in New Issue
Block a user