summaryrefslogtreecommitdiff
path: root/source3/smbd/process.c
AgeCommit message (Collapse)AuthorFilesLines
2009-11-26s3-smbd: no drsuapi server stubs yet in s3. Fixes the build, sorry.Günther Deschner1-1/+0
Guenther
2009-11-26s3-rpc: Avoid including every pipe's client and server stubs everywhere in ↵Günther Deschner1-0/+15
samba. Guenther
2009-11-23Revert "s3: Move the global variable Protocol to struct smbd_server_connection"Volker Lendecke1-1/+0
This reverts commit c85a4c9ba4a7de65a7850f6f9708df66bd24deea.
2009-11-21s3: Move the global variable Protocol to struct smbd_server_connectionVolker Lendecke1-0/+1
2009-10-01Fix for CVE-2009-2906.Jeremy Allison1-5/+25
Summary: Specially crafted SMB requests on authenticated SMB connections can send smbd into a 100% CPU loop, causing a DoS on the Samba server.
2009-09-24s3 onefs: Add some debugging/asserts to give more info when there is bad ↵Zack Kirsch1-0/+2
deferred open state. Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-09-06Fix bug 6673 - smbpasswd does not work with "unix password sync = yes".Jeremy Allison1-2/+2
Revert change from 3.3 -> 3.4 with read_socket_with_timeout changed from sys_read() to sys_recv(). read_socket_with_timeout() is called with non-fd's (with a pty in chgpasswd.c and with a disk file in lib/dbwrap_file.c via read_data()). recv works for the disk file, but not the pty. Change the name of read_socket_with_timeout() to read_fd_with_timeout() to make this clear (and add comments). Jeremy.
2009-08-07s3:smbd: move dptr globals into struct smbd_server_connectionStefan Metzmacher1-0/+3
metze
2009-07-27Fix a valgrind error in chain_replyVolker Lendecke1-3/+10
construct_reply() references the request after chain_reply has freed it.
2009-07-24In chain_reply, copy the subrequests' error to the main requestVolker Lendecke1-0/+15
2009-07-17Move the initialization of smbd_server_conn from smbd/process,Jeremy Allison1-5/+0
after the accept and fork, to smbd_init_globals(), so it's done immediately on server startup. This is needed as some messages are sent to all active smbd processes (including the master listening daemon). If it gets a message that forces it to scan it's current connections (ie. conn_find()) then it discovers that sconn->smb1.tcons.Connections dereferences null (as sconn == NULL in the parent) and crashes. Yes, I could fix all cases where sconn is used and explicitly check for NULL but this fix is easier. It means that the smbd_event_context() is initialized in the master daemon and then re-initialized after fork, but that should be being done correctly in every fork call anyway. Without this change the previous fix 6a9e0039100b57f9626e87defec6720c476b9789 still panics in the reproducible test case for bug 6564, as this is one case where such a message (MSG_SMB_CONF_UPDATED) is sent to the parent. Metze please check. This change passes valgrind. Jeremy.
2009-07-14Revert this commit :Jeremy Allison1-56/+2
s3: Make smbd aware of permission change of usershare. Since usershare are relatively volatile and non-previledge users must disconnect from smbd and reconnect to it to make share permission in effect. For now. This is a feature request and I think we need to design it a little differently so as not to touch core change_to_user() code. Jeremy.
2009-07-15s3: Make smbd aware of permission change of usershare. Since usershare are ↵Bo Yang1-2/+56
relatively volatile and non-previledge users must disconnect from smbd and reconnect to it to make share permission in effect.
2009-06-22s3: forward MSG_DEBUG from smbd parent to all childrenAravind Srinivasan1-0/+9
Before 3.3, an smbcontrol debug message sent to the target "smbd" would actually be sent to all running processes including nmbd and winbindd. This behavior was changed in 3.3 so that the "smbd" target would only send a message to the process found in smbd.pid, while the "all" target would send a message to all processes. The ability to set the debug level of all processes within a single daemon, without specifying each pid is quite useful. This was implemented in winbindd in 065760ed. This patch does the same thing for smbd. Upon receiving a MSG_DEBUG the parent smbd will rebroadcast it to all of its children. The printing process has been added to the list of smbd child processes, and we now always track the number of smbd children regardless of the "max smbd processes" setting.
2009-06-03s3:smbd: move tcon specific globals to struct smbd_server_connectionStefan Metzmacher1-3/+7
metze
2009-06-03s3:smbd: move more session specific globals to struct smbd_server_connectionStefan Metzmacher1-1/+12
metze
2009-06-03s3:smbd: move some session specific globals to struct smbd_server_connectionStefan Metzmacher1-2/+7
metze
2009-06-03s3:smbd: move already_got_session to struct smbd_server_connectionStefan Metzmacher1-0/+2
metze
2009-06-03s3:smbd: move max_recv to struct smbd_server_connectionStefan Metzmacher1-1/+1
metze
2009-06-03s3:smbd: allow SMB2 only if we don't use security = shareStefan Metzmacher1-1/+2
metze
2009-05-26s3:smbd: move SMB1 specific stuff into a substructure of smbd_server_connectionStefan Metzmacher1-9/+9
metze
2009-05-20s3:smbd: add infrastructure for SMB2 supportStefan Metzmacher1-0/+12
This is disabled by default and activated by "max protocol = SMB2". metze
2009-05-08s3: Fix chained sesssetupAndX/tconn messagesTim Prouty1-0/+7
A sesssetupAndX chained with a tconn will not correctly set the TID in the response header. I'm seeing an XP client send this chained sesssetup/tconn when samba has security = share. Samba's current behavior is to return a TID of 0 in the smb header rather than the actual TID. This patch also updates the UID in the header as well.
2009-05-08s3:smbd: fix the fix for mapped IPv4 address handling in release_ip().Michael Adam1-2/+2
It was too late... Thanks Metze for noticing. Michael
2009-05-08s3: make release_ip() call (ctdb) cope with IPv4 mapped addressesMichael Adam1-1/+8
Michael
2009-04-12write_data already guarantees everything was writtenVolker Lendecke1-9/+6
2009-03-23s3:smbd: use new simplified snb_signing code in the serverStefan Metzmacher1-15/+35
We keep the seqnum/mid mapping in the smb_request structure. This also moves one global variable into the smbd_server_connection struct. metze
2009-03-23s3:smbd: if we allow trans2 on the IPC$ share, then we have to allow transs2 ↵Stefan Metzmacher1-1/+1
too. Otherwise we'll confuse the client signing engine, when we reply an error to each transs2. metze
2009-02-16make receive_smb_raw_talloc more readableTim Prouty1-4/+4
2009-02-13Noted by Vericode analysis. Correctly use chroot().Jeremy Allison1-1/+5
Jeremy.
2009-02-09S3: New module interface for SMB message statistics gatheringtodd stecher1-16/+45
This changelist allows for the addition of custom performance monitoring modules through smb.conf. Entrypoints in the main message processing code have been added to capture the command, subop, ioctl, identity and message size statistics.
2009-02-07Fix memleaks in chain_reply for async requestsVolker Lendecke1-0/+2
2009-01-31Remove the global variable "chain_size"Volker Lendecke1-2/+24
2009-01-27s3:smbd: make kernel oplocks event drivenStefan Metzmacher1-74/+0
And use signal events for Linux oplocks. metze
2009-01-27s3:smbd: remove pointless respond_to_all_remaining_local_messages() functionStefan Metzmacher1-25/+0
This the process_kernel_oplock() function never response to messages, it only generates messages to ourself. metze
2009-01-27s3:smbd: use signal events for SIGTERM, SIGHUP and SIGCHLDStefan Metzmacher1-14/+51
metze
2009-01-27s3:smbd: move all code that handles a client connection into smbd_process()Stefan Metzmacher1-6/+218
metze
2009-01-25Fix chain_reply for pipe readsVolker Lendecke1-1/+11
The caller might have over-allocated reply->outbuf. Deal with that. Sorry, Günther, for giving you so much pain ... Volker
2009-01-22s3:smbd: we don't need to call message_dispatch() anymore it's event ↵Stefan Metzmacher1-23/+2
triggered now metze
2009-01-22s3:smbd: restructure kernel oplocks codeStefan Metzmacher1-38/+6
This converts the irix oplocks code to use a fd event and removes the last special case for file descriptors for the main sys_select(). metze
2009-01-22s3: always call run_events() before and after sys_select()Stefan Metzmacher1-6/+4
And always setup the fd events. metze
2009-01-20"userdom_struct" does not need "full_name" anymore -- unusedVolker Lendecke1-2/+0
2009-01-20s3:smbd: call message_dispatch() before processing incoming PDUsStefan Metzmacher1-0/+6
This is a hack to fix races which happen with the RAW-RENAME and RAW-OPLOCK tests. We should try to remove it later. metze
2009-01-16remove the old chain_reply codeVolker Lendecke1-214/+4
2009-01-16Correctly calculate the offset for read&xVolker Lendecke1-0/+19
2009-01-16Add a new implementation of chain_replyVolker Lendecke1-0/+217
This the global variable "orig_inbuf" in the old chain_reply code. This global variable was one of the reasons why we had the silly restriction to not allow async requests within a request chain.
2009-01-10Fix a type-punned errorVolker Lendecke1-1/+1
2009-01-10Fix a C++ warningVolker Lendecke1-2/+2
2009-01-09s3:smbd: handle incoming smb requests via event handlersStefan Metzmacher1-108/+155
We use a fd event and receive incoming smb requests when the fd becomes readable. It's not completely nonblocking yet, but it should behave like the old code. We use timed events to trigger retries for deferred open calls. metze
2009-01-08s3:smbd: move all globals and static variables in globals.[ch]Stefan Metzmacher1-31/+1
The goal is to move all this variables into a big context structure. metze