summaryrefslogtreecommitdiff
path: root/source3/rpc_parse/parse_rpc.c
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-09-16s3-dcerpc: remove more obsolete or duplicate headers.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: 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-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-03-18s3-spoolss: remove custom syntax_spoolss and use the syntax defined in IDL.Günther Deschner1-10/+0
Guenther
2008-07-20Refactoring: Change calling conventions for cli_rpc_pipe_open_noauthVolker Lendecke1-0/+10
Pass in ndr_syntax_id instead of pipe_idx, return NTSTATUS (This used to be commit 9abc9dc4dc13bd3e42f98eff64eacf24b51f5779)
2008-07-19Make the pipe_names[] array static to cli_pipe.cVolker Lendecke1-63/+0
(This used to be commit ab7ab350591bf16717744a0c252d3a9d185bcb77)
2008-07-19Make use of ndr_syntax_id_equalVolker Lendecke1-2/+2
(This used to be commit 3ab3f2610500107c9cff677746365bba143ca9de)
2008-05-23drsuapi: add all code required for our drsuapi rpc client.Günther Deschner1-0/+1
Guenther (This used to be commit 7c93190843e77764be4d0f6d4f0b93061c192c98)
2008-05-21Compile endpoint mapper pidl outputVolker Lendecke1-0/+1
(This used to be commit fe8f9e427af3eb42d63fde96c4fe20a255facb95)
2008-04-20rpc_parse: fix "assignment discards qualifier" warning by using CONST_DISCARD.Michael Adam1-1/+1
Michael (This used to be commit 0de001a5446545b928eb88e1916b4fe674017424)
2008-04-20Remove the pipe_idx variable from rpc_pipe_clientVolker Lendecke1-1/+2
(This used to be commit 4840febcd481563c3d9b2fabc1fe1b2ae5a76cf6)
2008-04-17rpc_parse: Use UUIDs from librpc/gen_ndr/ when possible to reduceJelmer Vernooij1-188/+25
duplication. (This used to be commit 428654b473ba44b2f5340eefef0d4fcd51aff558)
2008-04-17Remove copying of interface syntax id.Jelmer Vernooij1-1/+1
(This used to be commit 0012dfbe1fcf17486a24366b939054b5637646e3)
2008-04-17Actually connect to RPC.Jelmer Vernooij1-0/+15
(This used to be commit 3082534454ff936ac0b78b5a2c72c9b060e21244)
2008-04-15Reconcile ndr_syntax_id used by pidl-generated code and Samba3's RFC_IFACE.Jelmer Vernooij1-1/+1
(This used to be commit 7bea00dca1ee08ef731dfa73110ef9c190a29919)
2007-10-18RIP BOOL. Convert BOOL -> bool. I found a few interestingJeremy Allison1-17/+17
bugs in various places whilst doing this (places that assumed BOOL == int). I also need to fix the Samba4 pidl generation (next checkin). Jeremy. (This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
2007-10-10[GLUE] Rsync SAMBA_3_2_0 SVN r25598 in order to create the v3-2-test branch.Gerald (Jerry) Carter1-22/+0
(This used to be commit 5c6c8e1fe93f340005110a7833946191659d88ab)
2007-10-10r23801: The FSF has moved around a lot. This fixes their Mass Ave address.Andrew Tridgell1-2/+1
(This used to be commit 87c91e4362c51819032bfbebbb273c52e203b227)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r22055: Port the endpoint mapper (and functions it requires) to Samba 3.Jelmer Vernooij1-0/+11
(This used to be commit ad981261877e6a2dce0c4f4e71fd9127aa31538a)
2007-10-10r16945: Sync trunk -> 3.0 for 3.0.24 code. Still needJeremy Allison1-0/+11
to do the upper layer directories but this is what everyone is waiting for.... Jeremy. (This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10r14643: Merge dcerpc_errstr from Samba 4.Günther Deschner1-1/+1
Might need to rework prs_dcerpc_status(). Guenther (This used to be commit 38b18f428ba941f4d9a14fa2de45cb0cd793a754)
2007-10-10r13407: Change the credentials code to be more like the Samba4 structure,Jeremy Allison1-1/+0
makes fixes much easier to port. Fix the size of dc->sess_key to be 16 bytes, not 8 bytes - only store 8 bytes in the inter-smbd store in secrets.tdb though. Should fix some uses of the dc->sess_key where we where assuming we could read 16 bytes. Jeremy. (This used to be commit 5b3c2e63c73fee8949108abe19ac7a448a033a7f)
2007-10-10r13316: Let the carnage begin....Gerald Carter1-10/+0
Sync with trunk as off r13315 (This used to be commit 17e63ac4ed8325c0d44fe62b2442449f3298559f)
2007-10-10r10656: BIG merge from trunk. Features not copied overGerald Carter1-470/+48
* \PIPE\unixinfo * winbindd's {group,alias}membership new functions * winbindd's lookupsids() functionality * swat (trunk changes to be reverted as per discussion with Deryck) (This used to be commit 939c3cb5d78e3a2236209b296aa8aba8bdce32d3)
2007-10-10r8805: Merge a duplicate struct. Get ready to support SPNEGO rpc binds.Jeremy Allison1-45/+29
Jeremy. (This used to be commit fd6e342746edfda2f25df1ae0067d359b756e0cd)
2007-10-10r7696: Don't try and be clever and read an 8 byte int and 3 pad bytesJeremy Allison1-2/+2
as a uint32 - you'll just get it wrong (as I did :-). Second attempt to fix the Apple client issues. Jeremy. (This used to be commit d2aa5bc7aaa9fe11fa4748f99e4ba49be08aa639)
2007-10-10r7385: Rewrite the RPC bind parsing functions to follow the spec. I haven't yetJeremy Allison1-30/+71
tested this so I may have screwed this up - however it now follows the DCE spec. valgrinded tests to follow.... Jeremy. (This used to be commit 877e0a61f5821c89149b1403d08675dd7db8039e)
2007-10-10r6243: Yes. I *will* hate myself in the morning for this one.Gerald Carter1-0/+17
I need to gather some more information to know if these extra context id's may be used later. But for now, pw changes via CTL+ALT+DEL from win2k3sp1 clients work. (This used to be commit e7189a4e4b2211ce396944559d38056fa5b57f65)
2007-10-10r6014: rather large change set....Gerald Carter1-11/+34
pulling back all recent rpc changes from trunk into 3.0. I've tested a compile and so don't think I've missed any files. But if so, just mail me and I'll clean backup in a couple of hours. Changes include \winreg, \eventlog, \svcctl, and general parse_misc.c updates. I am planning on bracketing the event code with an #ifdef ENABLE_EVENTLOG until I finish merging Marcin's changes (very soon). (This used to be commit 4e0ac63c36527cd8c52ef720cae17e84f67e7221)
2007-10-10r704: BUG 1315: fix for schannel client connections to server's that don't ↵Gerald Carter1-5/+15
support 128 bit encryption (This used to be commit 316ba5ad89ddfa445d44d28141c5901fc64aec90)
2007-10-10r196: merging struct uuid from trunkGerald Carter1-43/+32
(This used to be commit 911a28361b9d8dd50597627f245ebfb57c6294fb)
2003-10-24Add initshutdown pipe commands to rpcclient. Second part of fix to bugJim McDonough1-0/+10
#534 (This used to be commit 4e86243ea1d4bbe96720caaaf02300f5e15bee5a)
2003-10-03Grrr. compile patches before you apply !Jeremy Allison1-4/+4
Jeremy. (This used to be commit dfbde4be7191895d79762855b21f5c62d53d5267)
2003-10-03abstract UUID parsing code to an individual function; patch from AnthonyGerald Carter1-7/+26
(This used to be commit 9365c619d6feb15289d963e9e70e1f947b7f8c3f)
2003-10-01Remove duplicate function (now in rpc_parse/parse_prs.c) and fix a RPC debugAndrew Bartlett1-21/+1
(I renamed the element of the structure). Andrew Bartlett (This used to be commit 641652cad97b761ba11d4e89b7c9ad098c7dd1c2)
2003-10-01commit sign only patch from Andrew; bug 167; tested using 2k & XP ↵Gerald Carter1-3/+3
clientspreviously joined to the Samba domain (This used to be commit 3802f5895ee18507c6f467bd11db0b1147a6fdfd)
2003-07-14Jeremy requested that I get my NTLMSSP patch into CVS. He didn't requestAndrew Bartlett1-17/+9
the schannel code, but I've included that anyway. :-) This patch revives the client-side NTLMSSP support for RPC named pipes in Samba, and cleans up the client and server schannel code. The use of the new code is enabled by the 'sign', 'seal' and 'schannel' commands in rpcclient. The aim was to prove that our separate NTLMSSP client library actually implements NTLMSSP signing and sealing as per Microsoft's NTLMv1 implementation, in the hope that knowing this will assist us in correctly implementing NTLMSSP signing for SMB packets. (Still not yet functional) This patch replaces the NTLMSSP implementation in rpc_client/cli_pipe.c with calls to libsmb/ntlmssp.c. In the process, we have gained the ability to use the more secure NT password, and the ability to sign-only, instead of having to seal the pipe connection. (Previously we were limited to sealing, and could only use the LM-password derived key). Our new client-side NTLMSSP code also needed alteration to cope with our comparatively simple server-side implementation. A future step is to replace it with calls to the same NTLMSSP library. Also included in this patch is the schannel 'sign only' patch I submitted to the team earlier. While not enabled (and not functional, at this stage) the work in this patch makes the code paths *much* easier to follow. I have also included similar hooks in rpccleint to allow the use of schannel on *any* pipe. rpcclient now defaults to not using schannel (or any other extra per-pipe authenticiation) for any connection. The 'schannel' command enables schannel for all pipes until disabled. This code is also much more secure than the previous code, as changes to our cli_pipe routines ensure that the authentication footer cannot be removed by an attacker, and more error states are correctly handled. (The same needs to be done to our server) Andrew Bartlett (This used to be commit 5472ddc9eaf4e79c5b2e1c8ee8c7f190dc285f19)
2003-04-22parse_string is only used for the authentication negotiators.Volker Lendecke1-10/+6
It can itself determine the length of the string it has to transfer. Andrew B., could you take a look at the length calculation? Is that safe? Thanks, Volker (This used to be commit 0ef69b586a8f1fa11a41a3900180ea2090b60bfd)
2003-04-16Fixes to make SCHANNEL work in 3.0 against a W2K DC. Still need to fixJeremy Allison1-7/+7
multi-PDU encode/decode with SCHANNEL. Also need to test against WNT DC. Jeremy. (This used to be commit ff66d4097088409205b6bad5124a78ef9946010d)
2003-04-14Merge of rpcecho pipe for testing large dcerpc requests and responses.Tim Potter1-0/+10
Only compiled in when --enable-developer argument passed to configure. (This used to be commit 017da9393bab276543d0d5c50df8c760780f2450)
2003-04-09This is the netlogon schannel client code. Try aVolker Lendecke1-4/+16
rpcclient -S pdc -U% -c "samlogon user password" and it should work with the schannel. Needs testing against platforms different from NT4SP6. Volker (This used to be commit eaef0d8aeff1aa5a067679be3f17e08d7434e1e8)
2003-04-09A little clarification in the rpc auth header struct.Volker Lendecke1-8/+7
Volker (This used to be commit 36362c602ba03ae5e89956b16820d5dff580bee7)
2003-04-06Merge the TNG netlogon schannel from HEAD.Volker Lendecke1-0/+95
No more XP requiresignorseal anymore! Thanks again to Luke :-) Volker (This used to be commit 6b2b55901d66cab0c0c0c90bd0585c870be6e468)
2003-01-03Merge from HEAD - make Samba compile with -Wwrite-strings without additionalAndrew Bartlett1-22/+22
warnings. (Adds a lot of const). Andrew Bartlett (This used to be commit 3a7458f9472432ef12c43008414925fd1ce8ea0c)
2002-11-12Removed global_myworkgroup, global_myname, global_myscope. Added liberalJeremy Allison1-2/+2
dashes of const. This is a rather large check-in, some things may break. It does compile though :-). Jeremy. (This used to be commit f755711df8f74f9b8e8c1a2b0d07d02a931eeb89)