[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Fri Jan 25 04:01:03 MST 2013


The branch, master has been updated
       via  c5db4eb bug9598: s4-process_single: Use pid,fd as cluster_id in process_single just like process_prefork
      from  da35cd7 Avoid a very small memleak on talloc_tos()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit c5db4eb9104f1a95220273ee2b0290d157053922
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Fri Jan 25 13:15:51 2013 +1100

    bug9598: s4-process_single: Use pid,fd as cluster_id in process_single just like process_prefork
    
    This avoids two different process single servers (say LDAP and the RPC server) sharing the same
    server id.
    
    Fix-bug: https://bugzilla.samba.org/show_bug.cgi?id=9598
    
    Reported-by: Matthieu Patou <mat at matws.net>
    Reviewed-by: Matthieu Patou <mat at matws.net>
    Signed-off-by: Andrew Bartlett <abartlett at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Fri Jan 25 12:00:04 CET 2013 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source4/smbd/process_single.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/smbd/process_single.c b/source4/smbd/process_single.c
index 742eac1..ff67750 100644
--- a/source4/smbd/process_single.c
+++ b/source4/smbd/process_single.c
@@ -49,6 +49,7 @@ static void single_accept_connection(struct tevent_context *ev,
 {
 	NTSTATUS status;
 	struct socket_context *connected_socket;
+	pid_t pid = getpid();
 
 	/* accept an incoming connection. */
 	status = socket_accept(listen_socket, &connected_socket);
@@ -71,10 +72,14 @@ static void single_accept_connection(struct tevent_context *ev,
 
 	talloc_steal(private_data, connected_socket);
 
-	/* The cluster_id(0, fd) cannot collide with the incrementing
-	 * task below, as the first component is 0, not 1 */
+	/*
+	 * We use the PID so we cannot collide in with cluster ids
+	 * generated in other single mode tasks, and, and won't
+	 * collide with PIDs from process model standard because a the
+	 * combination of pid/fd should be unique system-wide
+	 */
 	new_conn(ev, lp_ctx, connected_socket,
-		 cluster_id(0, socket_get_fd(connected_socket)), private_data);
+		 cluster_id(pid, socket_get_fd(connected_socket)), private_data);
 }
 
 /*


-- 
Samba Shared Repository


More information about the samba-cvs mailing list