diff options
author | Luke Leighton <lkcl@samba.org> | 1997-10-23 16:17:07 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1997-10-23 16:17:07 +0000 |
commit | 203c93e9221bfa71a00165f251695cafb92f035b (patch) | |
tree | 82171a9a1eb44c26a09c86c3a45793247382fed2 /source3/smbparse.c | |
parent | 10e186bab7f490ebb2c07a7b71cd28c06855ff17 (diff) | |
download | samba-203c93e9221bfa71a00165f251695cafb92f035b.tar.gz samba-203c93e9221bfa71a00165f251695cafb92f035b.tar.bz2 samba-203c93e9221bfa71a00165f251695cafb92f035b.zip |
general sorting out, from crashes generated by do_lsa_req_chal() in client.c
trying to set up the data parameters etc and not understanding what's going on.
in api_netlogTNP, added smb_io_rpc_hdr() call to decode the header received
(and in this instance, generated by do_lsa_req_chal()). and then noticed
that it's two bytes out. but i don't know how to do "byte parameters"
and it's not the same format as the LSA_REQCHAL received from nt workstations.
agh!
(This used to be commit 0cc8ce43e1d54b44237bb525f4cf6b77e7ca3ced)
Diffstat (limited to 'source3/smbparse.c')
-rw-r--r-- | source3/smbparse.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/source3/smbparse.c b/source3/smbparse.c index ec0e877778..7c42ae52b0 100644 --- a/source3/smbparse.c +++ b/source3/smbparse.c @@ -612,7 +612,7 @@ char* smb_io_gid(BOOL io, DOM_GID *gid, char *q, char *base, int align, int dept creates an RPC_HDR structure. ********************************************************************/ void make_rpc_header(RPC_HDR *hdr, enum RPC_PKT_TYPE pkt_type, - uint32 call_id, int data_len, int opnum) + uint32 call_id, int data_len, uint8 opnum) { if (hdr == NULL) return; @@ -626,8 +626,8 @@ void make_rpc_header(RPC_HDR *hdr, enum RPC_PKT_TYPE pkt_type, hdr->call_id = call_id; /* call identifier - match incoming RPC */ hdr->alloc_hint = data_len - 0x18; /* allocation hint (no idea) */ hdr->context_id = 0; /* presentation context identifier */ - hdr->cancel_count = opnum; /* cancel count. or opnum. XXXX CHEAT! */ - hdr->reserved = 0; /* reserved */ + hdr->cancel_count = 0; /* cancel count. */ + hdr->reserved = opnum; /* response: reserved. request: opnum */ } /******************************************************************* @@ -640,9 +640,6 @@ char* smb_io_rpc_hdr(BOOL io, RPC_HDR *rpc, char *q, char *base, int align, int DEBUG(5,("%s%04x smb_io_rpc_hdr\n", tab_depth(depth), PTR_DIFF(q, base))); depth++; - /* reserved should be zero: enforce it */ - rpc->reserved = 0; - DBG_RW_CVAL("major ", depth, base, io, q, rpc->major); q++; DBG_RW_CVAL("minor ", depth, base, io, q, rpc->minor); q++; DBG_RW_CVAL("pkt_type ", depth, base, io, q, rpc->pkt_type); q++; |