summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r24809: Consolidate the use of temporary talloc contexts.Volker Lendecke1-2/+2
This adds the two functions talloc_stackframe() and talloc_tos(). * When a new talloc stackframe is allocated with talloc_stackframe(), then * the TALLOC_CTX returned with talloc_tos() is reset to that new * frame. Whenever that stack frame is TALLOC_FREE()'ed, then the reverse * happens: The previous talloc_tos() is restored. * * This API is designed to be robust in the sense that if someone forgets to * TALLOC_FREE() a stackframe, then the next outer one correctly cleans up and * resets the talloc_tos(). The original motivation for this patch was to get rid of the sid_string_static & friends buffers. Explicitly passing talloc context everywhere clutters code too much for my taste, so an implicit talloc_tos() is introduced here. Many of these static buffers are replaced by a single static pointer. The intended use would thus be that low-level functions can rather freely push stuff to talloc_tos, the upper layers clean up by freeing the stackframe. The more of these stackframes are used and correctly freed the more exact the memory cleanup happens. This patch removes the main_loop_talloc_ctx, tmp_talloc_ctx and lp_talloc_ctx (did I forget any?) So, never do a tmp_ctx = talloc_init("foo"); anymore, instead, use tmp_ctx = talloc_stackframe() :-) Volker (This used to be commit 6585ea2cb7f417e14540495b9c7380fe9c8c717b)
2007-10-10r24699: Actually write 24 zeros instead of zero 24's...Volker Lendecke1-1/+1
Jeremy, please check ;-) (This used to be commit 85b64bde7df10ade5ba0abd493d433a7688f0979)
2007-10-10r24548: Fix the case-changing renamesVolker Lendecke1-1/+20
This was broken when I changed reply_mv to wrap in a open_file_ntcreate call, unix_convert on the destination was called twice (This used to be commit fddc9db91175bdb0b7ac6a636f8bef918bd7c1b4)
2007-10-10r24498: More extra code into a function, reply_openerror.Jeremy Allison1-24/+4
Jeremy. (This used to be commit 43ddfb8c918bd27e2efd3b54077db815da80a53a)
2007-10-10r24476: Fix the mappings in reply_opeXXX calls. Now to test renames.Jeremy Allison1-1/+3
Jeremy. (This used to be commit 74d10b09a68f5c06d6b3ceffe0a40818dc84106e)
2007-10-10r24475: Fix the error mapping for SMB_POSIX_PATH_OPEN.Jeremy Allison1-0/+12
Jeremy. (This used to be commit 6dac315ba1d9b9582c2b573e0785b2f6d627f846)
2007-10-10r24470: Start fixing up the mapping of OBJECT_NAME_COLLISIONJeremy Allison1-1/+12
to DOS error ERRDOS, ERRfilexists on open calls. Jeremy. (This used to be commit 4674486450bbe79ec9b22bcbc23c534365d6798a)
2007-10-10r24444: Convert reply_find[n]close to the new APIVolker Lendecke1-13/+25
(This used to be commit 6af85953465789594342f2d199ef5d29462cf34f)
2007-10-10r24362: Initialize padding also when no params are sent backVolker Lendecke1-4/+6
(This used to be commit 03c5e960a21ae78cdd832a5c760015f7fbd83bd9)
2007-10-10r24320: Fix the wct checks in reply_trans2 and the reply_trans callsVolker Lendecke1-1/+1
No idea what I've been smoking here. Thanks to Stefan for closely looking (This used to be commit 708f5af2e8c10d9a0d0027e3c31fa23689e746b8)
2007-10-10r24163: Remove the send_trans2_replies_new wrapperVolker Lendecke1-88/+89
This changes send_trans2_replies to not depend on large buffers anymore and finishes the trans2 conversion. (This used to be commit b1d133e4ffa8c9b8219ba6e7b83e23ca4bdd1616)
2007-10-10r24162: send_trans2_replies is now static in trans2.cVolker Lendecke1-8/+8
(This used to be commit 47261fb6fecc036cb1605f46bbe24e9b3661ff8c)
2007-10-10r24161: handle_trans2 takes care of errors itself, no need to do it in ↵Volker Lendecke1-6/+0
reply_transs2 (This used to be commit ca26b43e02f25d75e7439c6130f32dc322acd327)
2007-10-10r24160: process_trans2 in smbd/blocking.c used send_trans2_replies.Volker Lendecke1-6/+6
Fake a struct smb_request here. Volker (This used to be commit f712d1c92bee024a165b5facabdac1e2c866d9b1)
2007-10-10r24159: Convert reply_transs2 to the new APIVolker Lendecke1-46/+40
(This used to be commit a55a4d71ffe9ff1395e02f8bb3ad88fe5132fe99)
2007-10-10r24156: Convert reply_trans2 to the new APIVolker Lendecke1-56/+52
(This used to be commit a9c2d75b42be8b0d89ed1e1a2ce2c6ab4284f5ea)
2007-10-10r24155: Check wct in reply_trans2Volker Lendecke1-5/+21
(This used to be commit e0a708c79b4db4aab84022d568b5e7bf519e4b5a)
2007-10-10r24154: handle_trans2 does not reference inbuf/outbuf anymoreVolker Lendecke1-13/+9
(This used to be commit 8eb016a91e3ec8d1d9d5ae1ec6f92e1e0657d593)
2007-10-10r24153: Convert call_trans2setfsinfo to the new API.Volker Lendecke1-30/+57
This *might* break the transport encryption stuff. I need to check that. (This used to be commit 82b34d7bdbe5c5038810c11540b6b7bc04290653)
2007-10-10r24152: Convert call_trans2ioctl to the new APIVolker Lendecke1-25/+30
(This used to be commit db4e6781c4d1a9755a3ec45556be8dd935f15bae)
2007-10-10r24151: Convert call_trans2getdfsreferral to the new APIVolker Lendecke1-17/+25
(This used to be commit 642c58648b2468544e9488cbffe1a8b236949bcc)
2007-10-10r24150: Convert call_trans2qfsinfo to the new APIVolker Lendecke1-36/+59
(This used to be commit cdd86497b9830ba5fbc5b4511ed39ca44167faab)
2007-10-10r24149: Convert call_trans2setfilepathinfo to the new APIVolker Lendecke1-52/+81
(This used to be commit 50aa149cefc1da587f110eb0bf0344c737500f5b)
2007-10-10r24148: Remove some inbuf refs from subcommands of call_trans2setfilepathinfoVolker Lendecke1-37/+24
(This used to be commit 09ed6537b39f72e61043a93fadea33562b07c6c6)
2007-10-10r24147: Remove some inbuf refs from call_trans2setfilepathinfoVolker Lendecke1-4/+6
(This used to be commit a13c42be7548fc0de3e1f6f1eaacbad3046af0d0)
2007-10-10r24144: Fix the buildVolker Lendecke1-7/+5
In a function returning void the "return;" needs to stand alone on some compilers (This used to be commit 28affcca8e22b9a147876a60fec28551256bcaa8)
2007-10-10r24143: Convert call_trans2qfilepathinfo to the new APIVolker Lendecke1-85/+161
(This used to be commit 0b84e29120b87bf6fc86df10102f1c4d4f98cdb6)
2007-10-10r24142: Remove some direct inbuf references from call_trans2qfilepathinfoVolker Lendecke1-4/+9
(This used to be commit c9c0133d5512e68fcaf22b2abd3343ae944ddb9d)
2007-10-10r24140: Convert call_trans2findnotifyfirst/next to the new APIVolker Lendecke1-24/+30
(This used to be commit 46d9c51631d099af0f8696d3942eb51b0cb09865)
2007-10-10r24139: Convert call_trans2mkdir to the new APIVolker Lendecke1-25/+39
(This used to be commit d0b7f409e1ec88bcd695474aa77e75cb50dce013)
2007-10-10r24138: Convert call_trans2findnext to the new APIVolker Lendecke1-27/+42
(This used to be commit af1855e4cebb6df3415ca5389b10aaa5a956adc2)
2007-10-10r24137: Convert call_trans2findfirst to the new APIVolker Lendecke1-33/+55
(This used to be commit 238edebab71ed1596af82f4c8611432f9156bd18)
2007-10-10r24136: get_lanman2_dir_entry() does not need access to inbuf/outbufVolker Lendecke1-39/+49
It did not use inbuf anyway. Outbuf was used for alignment and to the flags2. The alignment works ok if we align relative to base_data because this and outbuf are both malloc'ed, and we put send_trans2_replies aligns out_data properly relative to the start of the outbuf. I don't know if the explicit align_string() calls in get_lanman2_dir_entry are really necessary. I think that srvstr_push also does the same. Please also note that this changes dst_len in srvstr_push from -1 to the real length remaining. Volker (This used to be commit 9b1614f8cb415c15032e6a34f2da5df026f92e6e)
2007-10-10r24135: Convert call_trans2open to the new APIVolker Lendecke1-37/+73
This itself won't help much, because send_trans2_replies_new still allocates the big buffers, but stay tuned :-) Also add/update my copyright on stuff I recently touched. Volker (This used to be commit 248f15ff143474db2493cef89ba446892342a361)
2007-10-10r24134: talloc smb_request for handle_trans2Volker Lendecke1-6/+27
When starting to convert the individual trans2 subcalls, I need the new API conventions to be present there. This means that those calls fill in req->outbuf when there's something to ship (This used to be commit d9eef977dc80d6ee71898efc1ff736afb75eba0c)
2007-10-10r24130: Explicitly pass flags2 to srvstr_pushVolker Lendecke1-23/+62
This is in preparation of the trans2 conversion: srvstr_push should not look at inbuf directly. (This used to be commit 5fd7e6a3821bea26d352e3edc23b7a216b1200e5)
2007-10-10r24120: add a file_id_create() hook into the VFS layerStefan Metzmacher1-4/+10
it's needed for some cluster filesystems to overload this function. metze (This used to be commit cdaa24e8047399002e4b287a31a8340a665e580f)
2007-10-10r24106: Pass fnum instead of buf/offset into get_rpc_pipe_pVolker Lendecke1-1/+1
(This used to be commit eb353412c60fc21a31530d9678505470ffbf11ce)
2007-10-10r24102: Pass the fid instead of inbuf and an offset to file_fsp.Volker Lendecke1-4/+4
This removes the buf==NULL condition in file_fsp(), but wherever it is called we do have a buffer anyway. Volker (This used to be commit d70a1f82fed64fa332f16407bea7c6671f48c59a)
2007-10-10r24101: Move prohibited_ea_names[] into samba_private_attr_name()Volker Lendecke1-6/+6
Minor cleanup (This used to be commit 04879717229d5b74b94b79a962cca5e9624648bc)
2007-10-10r23942: Fix issue found by Shlomi Yaakobovich <Shlomi@exanet.com> whereJeremy Allison1-5/+6
invalid names sent as a resume name were incorrectly mapped into . and .. Ensure they really *are . and .. Jeremy. (This used to be commit 78d0c5194fe42ad4f096657e2210a15541303a2a)
2007-10-10r23935: We were lying to the client in the case of POSIX_UNLINKJeremy Allison1-16/+51
if a Windows client had the file open. We were setting delete on close and returning "ok". The POSIX client then believed the file was gone (and it wasn't). Fix this to return SHARING_VIOLATION if there is an existing NTcreateX open on the file and someone calls POSIX_UNLINK. Still one more Cthon test to fix but getting closer now. Should be in 3.0.25c also. Jeremy. (This used to be commit 24e625a615447c025b73fed2d3db03c1f11ae596)
2007-10-10r23877: Fix two segfaults in (very unlikely) error paths, found by the IBMVolker Lendecke1-0/+2
checker. (This used to be commit 33068885e62f3681644c128e381822d48298ea05)
2007-10-10r23855: Setting the allocation size updates the modified timeJeremy Allison1-12/+29
as a write does. Fix bug #4779. Jeremy. (This used to be commit ed0e2174a895b25ce2b4e8ffd912ad57b31dd2e9)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
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-10r23761: Rename reduce_name to check_reduced_nameVolker Lendecke1-1/+1
The function name reduce_name is misleading, making the user believe it changes an argument. (This used to be commit 68234f0bc6fb4d6d99ae94ff067db118c60804aa)
2007-10-10r23727: Explicitly pass down FLAGS2 to srvstr_get_path.Volker Lendecke1-8/+24
Next step is to remove the bug that in the trans2 code we use the inbuf as the base pointer to decide whether we need ucs2 alignment where we need to use the beginning of the params buffer Jeremy, last one for today to reviw :-) (This used to be commit 18078b9faa3820fb34604063c9079c1ebe3ad47f)
2007-10-10r23726: Explicitly pass down the FLAGS2 field to srvstr_pull_buf. The nextVolker Lendecke1-2/+4
checkin will pull this up to srvstr_get_path. At that point we can get more independent of the inbuf, the base_ptr in pull_string will only be used to satisfy UCS2 alignment constraints. (This used to be commit 836782b07bf133e9b2598c4a089f1c810e4c7754)
2007-10-10r23724: Reduce access to the global inbuf a tiny bit. Add a struct smb_requestVolker Lendecke1-30/+53
that contains some of the fields from the SMB header, removing the need to access inbuf directly. This right now is used only in the open file code & friends, and creating that header is only done when needed. This needs more work, but it is a start. Jeremy, I'm only checking this into 3_0, please review before I merge it to _26. Volker (This used to be commit ca988f4e79e977160d82e86486972afd15d4acf5)