The branch, master has been updated
       via  0971a4e s4:librpc/rpc: also parse ncacn_packet pdus with 
LIBNDR_FLAG_OBJECT_PRESENT
       via  05ceb53 s4:librpc/rpc: don't mix up paylod ndr flags with the 
dcerpc layer
      from  fba028a build: Remove checks for krb5_decode_ap_req, free_AP_REQ 
and KRB5_TICKET_HAS_KEYINFO

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 0971a4ee6cd23f4a864c47d49e3899d00122e6e5
Author: Stefan Metzmacher <me...@samba.org>
Date:   Tue Apr 3 19:57:03 2012 +0200

    s4:librpc/rpc: also parse ncacn_packet pdus with LIBNDR_FLAG_OBJECT_PRESENT
    
    metze
    
    Autobuild-User: Stefan Metzmacher <me...@samba.org>
    Autobuild-Date: Tue Apr  3 23:06:31 CEST 2012 on sn-devel-104

commit 05ceb53dda1ac5e17c02dc42018636312cde2170
Author: Stefan Metzmacher <me...@samba.org>
Date:   Tue Apr 3 19:55:42 2012 +0200

    s4:librpc/rpc: don't mix up paylod ndr flags with the dcerpc layer
    
    If the transfer syntax is NDR64, it's only for the payload not
    for the dcerpc pdus.
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source4/librpc/rpc/dcerpc.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index ebf6f33..4cec4b5 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -674,7 +674,7 @@ static NTSTATUS ncacn_pull(struct dcecli_connection *c, 
DATA_BLOB *blob, TALLOC_
        struct ndr_pull *ndr;
        enum ndr_err_code ndr_err;
 
-       ndr = ndr_pull_init_flags(c, blob, mem_ctx);
+       ndr = ndr_pull_init_blob(blob, mem_ctx);
        if (!ndr) {
                return NT_STATUS_NO_MEMORY;
        }
@@ -683,6 +683,10 @@ static NTSTATUS ncacn_pull(struct dcecli_connection *c, 
DATA_BLOB *blob, TALLOC_
                ndr->flags |= LIBNDR_FLAG_BIGENDIAN;
        }
 
+       if (CVAL(blob->data, DCERPC_PFC_OFFSET) & DCERPC_PFC_FLAG_OBJECT_UUID) {
+               ndr->flags |= LIBNDR_FLAG_OBJECT_PRESENT;
+       }
+
        ndr_err = ndr_pull_ncacn_packet(ndr, NDR_SCALARS|NDR_BUFFERS, pkt);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return ndr_map_error2ntstatus(ndr_err);


-- 
Samba Shared Repository

Reply via email to