[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Wed Sep 26 08:29:03 MDT 2012


The branch, master has been updated
       via  50d324b s3-smbd: Don't segfault if user specified ports out for range.
      from  968da5f nsswitch: Add waf tests for solaris special cases

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


- Log -----------------------------------------------------------------
commit 50d324b7e070de4672eff3fb6231923e6dca807a
Author: Andreas Schneider <asn at samba.org>
Date:   Tue Sep 25 14:28:22 2012 +0200

    s3-smbd: Don't segfault if user specified ports out for range.
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Wed Sep 26 16:28:44 CEST 2012 on sn-devel-104

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

Summary of changes:
 source3/smbd/server.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 15762d8..90bbb62 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -752,6 +752,15 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 		ports = (const char **)str_list_make_v3(talloc_tos(), smb_ports, NULL);
 	}
 
+	for (j = 0; ports && ports[j]; j++) {
+		unsigned port = atoi(ports[j]);
+
+		if (port == 0 || port > 0xffff) {
+			exit_server_cleanly("Invalid port in the config or on "
+					    "the commandline specified!");
+		}
+	}
+
 	if (lp_interfaces() && lp_bind_interfaces_only()) {
 		/* We have been given an interfaces line, and been
 		   told to only bind to those interfaces. Create a
@@ -772,9 +781,6 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 
 			for (j = 0; ports && ports[j]; j++) {
 				unsigned port = atoi(ports[j]);
-				if (port == 0 || port > 0xffff) {
-					continue;
-				}
 
 				/* Keep the first port for mDNS service
 				 * registration.
@@ -810,11 +816,7 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 		     next_token_talloc(talloc_tos(), &sock_ptr, &sock_tok, " \t,"); ) {
 			for (j = 0; ports && ports[j]; j++) {
 				struct sockaddr_storage ss;
-
 				unsigned port = atoi(ports[j]);
-				if (port == 0 || port > 0xffff) {
-					continue;
-				}
 
 				/* Keep the first port for mDNS service
 				 * registration.


-- 
Samba Shared Repository


More information about the samba-cvs mailing list