summaryrefslogtreecommitdiff
path: root/source3/rpc_parse
AgeCommit message (Collapse)AuthorFilesLines
2010-02-17Fix bug #7146 - Samba miss-parses authenticated RPC packets.Jeremy Allison1-3/+2
Parts of the Samba RPC client and server code misinterpret authenticated packets. DCE authenticated packets actually look like this : +--------------------------+ |header | | ... frag_len (packet len)| | ... auth_len | +--------------------------+ | | | Data payload | ... .... | | +--------------------------+ | | | auth_pad_len bytes | +--------------------------+ | | | Auth footer | | auth_pad_len value | +--------------------------+ | | | Auth payload | | (auth_len bytes long) | +--------------------------+ That's right. The pad bytes come *before* the footer specifying how many pad bytes there are. In order to read this you must seek to the end of the packet and subtract the auth_len (in the packet header) and the auth footer length (a known value). The client and server code gets this right (mostly) in 3.0.x -> 3.4.x so long as the pad alignment is on an 8 byte boundary (there are some special cases in the code for this). Tridge discovered there are some (DRS replication) cases where on 64-bit machines where the pad alignment is on a 16-byte boundary. This breaks the existing S3 hand-optimized rpc code. This patch removes all the special cases in client and server code, and allows the pad alignment for generated packets to be specified by changing a constant in include/local.h (this doesn't affect received packets, the new code always handles them correctly whatever pad alignment is used). This patch also works correctly with rpcclient using sign+seal from the 3.4.x and 3.3.x builds (testing with 3.0.x and 3.2.x to follow) so even as a server it should still work with older libsmbclient and winbindd code. Jeremy
2009-11-03s3: Remove debug_ctx()Volker Lendecke1-1/+1
smbd just crashed on me: In a debug message I called a routine preparing a string that itself used debug_ctx. The outer routine also used it after the inner routine had returned. It was still referencing the talloc context that the outer debug_ctx() had given us, which the inner DEBUG had already freed.
2009-10-01s3: add perfcount idl and generated files.Günther Deschner1-42/+0
Guenther
2009-09-30s3-rpc_parse: remove unused prs_string.Günther Deschner1-44/+0
Guenther
2009-09-30s3-rpc_parse: remove unused UNISTR2 struct and init function.Günther Deschner1-56/+0
Guenther
2009-09-16s3-dcerpc: remove more obsolete or duplicate headers.Günther Deschner1-1/+1
Guenther
2009-09-16s3-schannel: remove unused schannel_decode/schannel_encode.Günther Deschner1-286/+0
Guenther
2009-09-15s3-dcerpc: use dcerpc_AuthLevel and remove duplicate set of flags.Günther Deschner1-8/+8
Guenther
2009-09-13s3-schannel: fix Coverity #950 OVERRUN_STATIC.Günther Deschner1-1/+1
Guenther
2009-09-11s3-schannel: remove last schannel hand-marshalling function.Günther Deschner1-31/+0
Guenther
2009-09-11s3-schannel: use NL_AUTH_SIGNATURE for schannel sign & seal (client & server).Günther Deschner1-63/+55
Guenther
2009-09-11s3-schannel: remove unused code.Günther Deschner1-63/+0
Guenther
2009-09-08s3: remove unused RPC_AUTH_SCHANNEL_NEG struct and parsing functions.Günther Deschner1-41/+0
Guenther
2009-07-16s3-rpc_parse: remove more unused code.Günther Deschner1-318/+0
Guenther
2009-07-05Add const to init_rpc_hdr_baVolker Lendecke1-1/+1
2009-07-05Remove "typedef struct ndr_syntax_id RPC_IFACE;"Volker Lendecke1-6/+8
2009-04-14Rework Samba3 to use new libcli/auth code (partial)Andrew Bartlett1-6/+6
This commit is mostly to cope with the removal of SamOemHash (replaced by arcfour_crypt()) and other collisions (such as changed function arguments compared to Samba3). We still provide creds_hash3 until Samba3 uses the credentials code in netlogon server Andrew Bartlett
2009-04-07s3:rpc_parse remove unused prs_unistr2()Andrew Bartlett1-38/+0
Signed-off-by: Günther Deschner <gd@samba.org>
2009-03-26s3:rpc_parse: remove unused init_unistr().Günther Deschner1-19/+0
Guenther
2009-03-25s3-rpc_parse: remove unused smb_io_domsid().Günther Deschner1-38/+0
Guenther
2009-03-25s3: remove unused rpc_parse/parse_sec.c file.Günther Deschner1-436/+0
Guenther
2009-03-18s3-rpc_parse: remove some unused parsing code.Günther Deschner1-338/+0
Guenther
2009-03-18s3-rpc_parse: remove unused BUFFER5 and UNISTR3.Günther Deschner2-142/+0
Guenther
2009-03-18s3-spoolss: remove rpc_parse/parse_spoolss.c alltogether.Günther Deschner1-29/+0
Good-Bye, last hand-marshalled rpc functions, rest in peace. Guenther
2009-03-18s3-spoolss: remove old spoolss_EnumPrinterDataEx.Günther Deschner1-251/+0
Guenther
2009-03-18s3-rpc_parse: move prs_uint64 to rpc_parse/parse_prs.c.Günther Deschner2-24/+24
Guenther
2009-03-18s3-spoolss: remove custom syntax_spoolss and use the syntax defined in IDL.Günther Deschner1-10/+0
Guenther
2009-03-17s3-spoolss: remove unused DEVICEMODE parsing and header.Günther Deschner1-189/+0
Guenther
2009-03-17s3-spoolss: move SYSTEMTIME parsing to a more generic place, as suggested.Günther Deschner2-43/+42
Guenther
2009-03-17s3: remove rpc_parse/parse_buffer.c completely.Günther Deschner1-509/+0
Guenther
2009-03-17s3-spoolss: remove old spoolss_EnumPrinterKey.Günther Deschner1-53/+0
Guenther
2009-03-17s3-spoolss: remove old rpccli_spoolss_enumprinterkey wrapper.Günther Deschner1-16/+0
Guenther
2009-03-17s3-spoolss: remove spoolss_EnumPrinterData.Günther Deschner1-79/+0
Guenther
2009-03-17s3-spoolss: remove rpccli_spoolss_enumprinterdata.Günther Deschner1-15/+0
Guenther
2009-03-17s3-spoolss: remove old spoolss_SetPrinterData.Günther Deschner1-65/+0
Guenther
2009-03-17s3-spoolss: remove old rpccli_spoolss_setprinterdata wrapper.Günther Deschner1-15/+0
Guenther
2009-03-17s3-spoolss: remove old spoolss_GetPrinterData.Günther Deschner1-69/+0
Guenther
2009-03-17s3-spoolss: remove old rpccli_spoolss_getprinterdata.Günther Deschner1-19/+0
Guenther
2009-03-13s3-spoolss: remove more unused marshalling code.Günther Deschner1-713/+0
Guenther
2009-03-13s3-spoolss: remove old spoolss_GetPrinter.Günther Deschner1-58/+0
Guenther
2009-03-13s3-spoolss: remove old spoolss_EnumPrinters.Günther Deschner1-67/+0
Guenther
2009-03-13s3-spoolss: remove old enumprinters wrapper.Günther Deschner1-25/+0
Guenther
2009-03-13s3-spoolss: remove old spoolss_GetPrinterDriver2.Günther Deschner1-309/+0
Guenther
2009-03-13s3-spoolss: remove old spoolss_EnumPrinterDrivers.Günther Deschner1-72/+0
Guenther
2009-03-13s3-spoolss: remove old rpccli_spoolss_enumprinterdrivers wrapper.Günther Deschner1-20/+0
Guenther
2009-03-13s3-spoolss: remove old spoolss_GetJob and spoolss_EnumJob.Günther Deschner1-310/+0
Guenther
2009-03-13s3-spoolss: remove old rpccli_spoolss_enumjobs wrapper.Günther Deschner1-23/+0
Guenther
2009-03-07s3-spoolss: remove more leftovers from old enumports call.Günther Deschner1-77/+0
Guenther
2009-03-07s3-spoolss: remove old spoolss_EnumMonitors.Günther Deschner1-130/+0
Guenther
2009-03-07s3-spoolss: remove old spoolss_EnumPorts.Günther Deschner1-126/+0
Guenther