Hello community,

here is the log from the commit of package samba for openSUSE:11.3
checked in at Mon Mar 7 18:10:13 CET 2011.



--------
--- old-versions/11.3/UPDATES/all/samba/samba.changes   2011-01-25 
10:28:58.000000000 +0100
+++ 11.3/samba/samba.changes    2011-03-07 17:09:35.000000000 +0100
@@ -1,0 +2,25 @@
+Fri Mar  4 20:12:24 UTC 2011 - [email protected]
+
+- Require a particular library version even if the major version is part of
+  the package name.  Using the same major version does not guarantee forward
+  compatibility.
+
+-------------------------------------------------------------------
+Tue Feb 22 01:07:50 UTC 2011 - [email protected]
+
+- Protect against possible denial of service caused by memory corruption;
+  CVE-2011-0719; (bso#7949); (bnc#670431).
+
+-------------------------------------------------------------------
+Thu Feb 17 13:25:08 CET 2011 - [email protected]
+
+- Increase the log level for missing PIDs on SIGCHLD, printcap child processes
+  are not added to the children PID list; (bnc#666460).
+
+-------------------------------------------------------------------
+Thu Feb 10 17:09:42 UTC 2011 - [email protected]
+
+- Do not require a particular library version if the major version is part of
+  the package name.
+
+-------------------------------------------------------------------

calling whatdependson for 11.3-i586


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ samba-doc.spec ++++++
--- /var/tmp/diff_new_pack.7jqa8B/_old  2011-03-07 18:09:20.000000000 +0100
+++ /var/tmp/diff_new_pack.7jqa8B/_new  2011-03-07 18:09:20.000000000 +0100
@@ -66,7 +66,7 @@
 %endif
 Url:            http://www.samba.org/
 Version:        3.5.4
-Release:        5.<RELEASE3>
+Release:        5.<RELEASE5>
 License:        GPLv3+
 Summary:        Samba Documentation
 Group:          Documentation/Other
@@ -389,7 +389,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %changelog

++++++ samba.spec ++++++
--- /var/tmp/diff_new_pack.7jqa8B/_old  2011-03-07 18:09:20.000000000 +0100
+++ /var/tmp/diff_new_pack.7jqa8B/_new  2011-03-07 18:09:20.000000000 +0100
@@ -71,7 +71,7 @@
 Url:            http://www.samba.org/
 AutoReqProv:    on
 Version:        3.5.4
-Release:        5.<RELEASE3>
+Release:        5.<RELEASE5>
 %ifarch ppc64
 Obsoletes:      samba-64bit
 %endif
@@ -171,7 +171,7 @@
     The Samba Team <[email protected]>
 
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package client
@@ -214,7 +214,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %if 0%{?suse_version} == 0 || 0%{?suse_version} > 1020
@@ -239,7 +239,7 @@
     The Samba Team <[email protected]>
 
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %endif
@@ -265,7 +265,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %endif
@@ -290,7 +290,7 @@
 --------
     Jeremy Allison <jra at samba dot org>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %if %{make_utils}
@@ -337,7 +337,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -362,7 +362,7 @@
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
 
 %description -n libsmbclient
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %else
@@ -407,7 +407,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libnetapi0
@@ -426,7 +426,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libnetapi-devel
@@ -446,7 +446,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
@@ -466,7 +466,7 @@
 %if 0%{?suse_version} && 0%{?suse_version} < 1031
 
 %description -n libsmbsharemodes
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %else
@@ -502,7 +502,7 @@
     The Samba Team <[email protected]>
 
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtalloc2
@@ -521,7 +521,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtalloc-devel
@@ -541,7 +541,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtdb1
@@ -560,7 +560,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtdb-devel
@@ -580,7 +580,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libwbclient0
@@ -599,7 +599,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libwbclient-devel
@@ -619,7 +619,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtevent0
@@ -638,7 +638,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libtevent-devel
@@ -659,7 +659,7 @@
     The Samba Team <[email protected]>
 
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libldb0
@@ -679,7 +679,7 @@
     The Samba Team <[email protected]>
 
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %package -n libldb-devel
@@ -699,7 +699,7 @@
 --------
     The Samba Team <[email protected]>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %if %{make_ldapsmb}
@@ -710,7 +710,7 @@
 Group:          Productivity/Networking/Samba
 AutoReqProv:    on
 Version:        1.34b
-Release:        5.<RELEASE3>
+Release:        5.<RELEASE5>
 Requires:       perl-ldap
 
 %description -n ldapsmb
@@ -723,7 +723,7 @@
 --------
     Guenther Deschner <guenther at deschner dot de>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %endif
@@ -746,7 +746,7 @@
 --------
     Steve French <sfrench at Samba dot org>
 
-Source Timestamp: 2489
+Source Timestamp: 2508
 Branch      : 3.5.4
 
 %endif

++++++ build-source-timestamp ++++++
--- /var/tmp/diff_new_pack.7jqa8B/_old  2011-03-07 18:09:20.000000000 +0100
+++ /var/tmp/diff_new_pack.7jqa8B/_new  2011-03-07 18:09:20.000000000 +0100
@@ -1,2 +1,2 @@
-2489
+2508
 Branch      : 3.5.4

++++++ patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches/samba.org/9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c 
new/patches/samba.org/9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c
--- old/patches/samba.org/9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c      
1970-01-01 01:00:00.000000000 +0100
+++ new/patches/samba.org/9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c      
2011-02-21 23:21:52.000000000 +0100
@@ -0,0 +1,37 @@
+commit 9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c
+Author: David Disseldorp <[email protected]>
+Date:   Wed Feb 16 17:23:25 2011 +0100
+
+    s3: increase the log level for missing PIDs on SIGCHLD
+    
+    Since the fix for bso#7836, the parent smbd is responsible for
+    maintaining an up-to-date printcap cache. It does this by forking a
+    child process to asynchronously fetch printcap data from CUPS.
+    
+    When the child process exits after fetching all printcap data, the
+    parent smbd is sent SIGCHLD. This triggers smbd_sig_chld_handler() which
+    looks for the exited process PID on a "children" list.
+    Child smbd process PIDs are added to the "children" list to ensure
+    cleanup on unclean shutdown and log level change notification messages.
+    
+    Printcap update process PIDs are not added to the list as they do not
+    maintain any state that requires cleanup, nor do they wait on tevent for
+    messages.
+    
+    Autobuild-User: Volker Lendecke <[email protected]>
+    Autobuild-Date: Thu Feb 17 11:11:45 CET 2011 on sn-devel-104
+
+Index: source3/smbd/server.c
+===================================================================
+--- source3/smbd/server.c.orig
++++ source3/smbd/server.c
+@@ -278,7 +278,8 @@ static void remove_child_pid(pid_t pid,
+               }
+       }
+ 
+-      DEBUG(0, ("Could not find child %d -- ignoring\n", (int)pid));
++      /* not all forked child processes are added to the children list */
++      DEBUG(1, ("Could not find child %d -- ignoring\n", (int)pid));
+ }
+ 
+ /****************************************************************************
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/samba.org/CVE-2011-0719.diff 
new/patches/samba.org/CVE-2011-0719.diff
--- old/patches/samba.org/CVE-2011-0719.diff    1970-01-01 01:00:00.000000000 
+0100
+++ new/patches/samba.org/CVE-2011-0719.diff    2011-02-21 23:39:06.000000000 
+0100
@@ -0,0 +1,449 @@
+Index: lib/tevent/tevent_select.c
+===================================================================
+--- lib/tevent/tevent_select.c.orig
++++ lib/tevent/tevent_select.c
+@@ -111,6 +111,11 @@ static struct tevent_fd *select_event_ad
+                                                          struct 
select_event_context);
+       struct tevent_fd *fde;
+ 
++      if (fd < 0 || fd >= FD_SETSIZE) {
++              errno = EBADF;
++              return NULL;
++      }
++
+       fde = tevent_common_add_fd(ev, mem_ctx, fd, flags,
+                                  handler, private_data,
+                                  handler_name, location);
+@@ -143,6 +148,11 @@ static int select_event_loop_select(stru
+ 
+       /* setup any fd events */
+       for (fde = select_ev->ev->fd_events; fde; fde = fde->next) {
++              if (fde->fd < 0 || fde->fd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      return -1;
++              }
++
+               if (fde->flags & TEVENT_FD_READ) {
+                       FD_SET(fde->fd, &r_fds);
+               }
+Index: lib/tevent/tevent_standard.c
+===================================================================
+--- lib/tevent/tevent_standard.c.orig
++++ lib/tevent/tevent_standard.c
+@@ -457,6 +457,11 @@ static int std_event_loop_select(struct
+ 
+       /* setup any fd events */
+       for (fde = std_ev->ev->fd_events; fde; fde = fde->next) {
++              if (fde->fd < 0 || fde->fd >= FD_SETSIZE) {
++                      std_ev->exit_code = EBADF;
++                      return -1;
++              }
++
+               if (fde->flags & TEVENT_FD_READ) {
+                       FD_SET(fde->fd, &r_fds);
+               }
+Index: nsswitch/libwbclient/wbc_async.c
+===================================================================
+--- nsswitch/libwbclient/wbc_async.c.orig
++++ nsswitch/libwbclient/wbc_async.c
+@@ -509,7 +509,7 @@ static bool closed_fd(int fd)
+       fd_set r_fds;
+       int selret;
+ 
+-      if (fd == -1) {
++      if (fd < 0 || fd >= FD_SETSIZE) {
+               return true;
+       }
+ 
+Index: nsswitch/wb_common.c
+===================================================================
+--- nsswitch/wb_common.c.orig
++++ nsswitch/wb_common.c
+@@ -241,6 +241,10 @@ static int winbind_named_pipe_sock(const
+               switch (errno) {
+                       case EINPROGRESS:
+                               FD_ZERO(&w_fds);
++                              if (fd < 0 || fd >= FD_SETSIZE) {
++                                      errno = EBADF;
++                                      goto error_out;
++                              }
+                               FD_SET(fd, &w_fds);
+                               tv.tv_sec = CONNECT_TIMEOUT - wait_time;
+                               tv.tv_usec = 0;
+@@ -388,6 +392,11 @@ int winbind_write_sock(void *buffer, int
+                  call would not block by calling select(). */
+ 
+               FD_ZERO(&r_fds);
++              if (winbindd_fd < 0 || winbindd_fd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      winbind_close_sock();
++                      return -1;
++              }
+               FD_SET(winbindd_fd, &r_fds);
+               ZERO_STRUCT(tv);
+ 
+@@ -448,6 +457,11 @@ int winbind_read_sock(void *buffer, int
+                  call would not block by calling select(). */
+ 
+               FD_ZERO(&r_fds);
++              if (winbindd_fd < 0 || winbindd_fd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      winbind_close_sock();
++                      return -1;
++              }
+               FD_SET(winbindd_fd, &r_fds);
+               ZERO_STRUCT(tv);
+               /* Wait for 5 seconds for a reply. May need to parameterise 
this... */
+Index: source3/client/client.c
+===================================================================
+--- source3/client/client.c.orig
++++ source3/client/client.c
+@@ -4420,8 +4420,10 @@ static void readline_callback(void)
+ 
+  again:
+ 
+-      if (cli->fd == -1)
++      if (cli->fd < 0 || cli->fd >= FD_SETSIZE) {
++              errno = EBADF;
+               return;
++      }
+ 
+       FD_ZERO(&fds);
+       FD_SET(cli->fd,&fds);
+Index: source3/client/dnsbrowse.c
+===================================================================
+--- source3/client/dnsbrowse.c.orig
++++ source3/client/dnsbrowse.c
+@@ -81,6 +81,11 @@ static void do_smb_resolve(struct mdns_s
+                       TALLOC_FREE(fdset);
+               }
+ 
++              if (mdnsfd < 0 || mdnsfd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      break;
++              }
++
+               fdsetsz = howmany(mdnsfd + 1, NFDBITS) * sizeof(fd_mask);
+               fdset = TALLOC_ZERO(ctx, fdsetsz);
+               FD_SET(mdnsfd, fdset);
+@@ -181,6 +186,12 @@ int do_smb_browse(void)
+                       TALLOC_FREE(fdset);
+               }
+ 
++              if (mdnsfd < 0 || mdnsfd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      TALLOC_FREE(ctx);
++                      return 1;
++              }
++
+               fdsetsz = howmany(mdnsfd + 1, NFDBITS) * sizeof(fd_mask);
+               fdset = TALLOC_ZERO(ctx, fdsetsz);
+               FD_SET(mdnsfd, fdset);
+Index: source3/lib/events.c
+===================================================================
+--- source3/lib/events.c.orig
++++ source3/lib/events.c
+@@ -55,6 +55,14 @@ bool event_add_to_select_args(struct tev
+       bool ret = false;
+ 
+       for (fde = ev->fd_events; fde; fde = fde->next) {
++              if (fde->fd < 0 || fde->fd >= FD_SETSIZE) {
++                      /* We ignore here, as it shouldn't be
++                         possible to add an invalid fde->fd
++                         but we don't want FD_SET to see an
++                         invalid fd. */
++                      continue;
++              }
++
+               if (fde->flags & EVENT_FD_READ) {
+                       FD_SET(fde->fd, read_fds);
+                       ret = true;
+Index: source3/lib/g_lock.c
+===================================================================
+--- source3/lib/g_lock.c.orig
++++ source3/lib/g_lock.c
+@@ -391,7 +391,9 @@ NTSTATUS g_lock_lock(struct g_lock_ctx *
+                       r_fds = &_r_fds;
+                       FD_ZERO(r_fds);
+                       max_fd = ctdbd_conn_get_fd(conn);
+-                      FD_SET(max_fd, r_fds);
++                      if (max_fd >= 0 && max_fd < FD_SETSIZE) {
++                              FD_SET(max_fd, r_fds);
++                      }
+               }
+ #endif
+ 
+Index: source3/lib/packet.c
+===================================================================
+--- source3/lib/packet.c.orig
++++ source3/lib/packet.c
+@@ -107,6 +107,11 @@ NTSTATUS packet_fd_read_sync(struct pack
+       int res;
+       fd_set r_fds;
+ 
++      if (ctx->fd < 0 || ctx->fd >= FD_SETSIZE) {
++              errno = EBADF;
++              return map_nt_error_from_unix(errno);
++      }
++
+       FD_ZERO(&r_fds);
+       FD_SET(ctx->fd, &r_fds);
+ 
+Index: source3/lib/readline.c
+===================================================================
+--- source3/lib/readline.c.orig
++++ source3/lib/readline.c
+@@ -91,6 +91,11 @@ static char *smb_readline_replacement(co
+               timeout.tv_sec = 5;
+               timeout.tv_usec = 0;
+ 
++              if (fd < 0 || fd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      break;
++              }
++
+               FD_ZERO(&fds);
+               FD_SET(fd,&fds);
+ 
+Index: source3/lib/select.c
+===================================================================
+--- source3/lib/select.c.orig
++++ source3/lib/select.c
+@@ -75,6 +75,17 @@ int sys_select(int maxfd, fd_set *readfd
+                       return -1;
+               }
+ 
++              if (select_pipe[0] < 0 || select_pipe[0] >= FD_SETSIZE) {
++                      DEBUG(0, ("sys_select: bad fd\n"));
++                      if (readfds != NULL)
++                              FD_ZERO(readfds);
++                      if (writefds != NULL)
++                              FD_ZERO(writefds);
++                      if (errorfds != NULL)
++                              FD_ZERO(errorfds);
++                      errno = EBADF;
++                      return -1;
++              }
+               /*
+                * These next two lines seem to fix a bug with the Linux
+                * 2.0.x kernel (and probably other UNIXes as well) where
+@@ -101,6 +112,7 @@ int sys_select(int maxfd, fd_set *readfd
+               readfds2 = &readfds_buf;
+               FD_ZERO(readfds2);
+       }
++
+       FD_SET(select_pipe[0], readfds2);
+ 
+       errno = 0;
+Index: source3/lib/util_sock.c
+===================================================================
+--- source3/lib/util_sock.c.orig
++++ source3/lib/util_sock.c
+@@ -495,6 +495,11 @@ NTSTATUS read_fd_with_timeout(int fd, ch
+       timeout.tv_usec = (long)(1000 * (time_out % 1000));
+ 
+       for (nread=0; nread < mincnt; ) {
++              if (fd < 0 || fd >= FD_SETSIZE) {
++                      errno = EBADF;
++                      return map_nt_error_from_unix(EBADF);
++              }
++
+               FD_ZERO(&fds);
+               FD_SET(fd,&fds);
+ 
+@@ -1235,7 +1240,7 @@ bool open_any_socket_out(struct sockaddr
+ 
+       for (i=0; i<num_addrs; i++) {
+               sockets[i] = socket(addrs[i].ss_family, SOCK_STREAM, 0);
+-              if (sockets[i] < 0)
++              if (sockets[i] < 0 || sockets[i] >= FD_SETSIZE)
+                       goto done;
+               set_blocking(sockets[i], false);
+       }
+@@ -1284,8 +1289,10 @@ bool open_any_socket_out(struct sockaddr
+       FD_ZERO(&r_fds);
+ 
+       for (i=0; i<num_addrs; i++) {
+-              if (sockets[i] == -1)
++              if (sockets[i] < 0 || sockets[i] >= FD_SETSIZE) {
++                      /* This cannot happen - ignore if so. */
+                       continue;
++              }
+               FD_SET(sockets[i], &wr_fds);
+               FD_SET(sockets[i], &r_fds);
+               if (sockets[i]>maxfd)
+@@ -1305,8 +1312,10 @@ bool open_any_socket_out(struct sockaddr
+ 
+       for (i=0; i<num_addrs; i++) {
+ 
+-              if (sockets[i] == -1)
++              if (sockets[i] < 0 || sockets[i] >= FD_SETSIZE) {
++                      /* This cannot happen - ignore if so. */
+                       continue;
++              }
+ 
+               /* Stevens, Network Programming says that if there's a
+                * successful connect, the socket is only writable. Upon an
+Index: source3/libaddns/dnssock.c
+===================================================================
+--- source3/libaddns/dnssock.c.orig
++++ source3/libaddns/dnssock.c
+@@ -219,6 +219,11 @@ static DNS_ERROR read_all(int fd, uint8
+               ssize_t ret;
+               int fd_ready;
+               
++              if (fd < 0 || fd >= FD_SETSIZE) {
++                      /* read timeout */
++                      return ERROR_DNS_SOCKET_ERROR;
++              }
++
+               FD_ZERO( &rfds );
+               FD_SET( fd, &rfds );
+ 
+Index: source3/libsmb/nmblib.c
+===================================================================
+--- source3/libsmb/nmblib.c.orig
++++ source3/libsmb/nmblib.c
+@@ -1094,6 +1094,11 @@ struct packet_struct *receive_packet(int
+       struct timeval timeout;
+       int ret;
+ 
++      if (fd < 0 || fd >= FD_SETSIZE) {
++              errno = EBADF;
++              return NULL;
++      }
++
+       FD_ZERO(&fds);
+       FD_SET(fd,&fds);
+       timeout.tv_sec = t/1000;
+Index: source3/nmbd/nmbd_packets.c
+===================================================================
+--- source3/nmbd/nmbd_packets.c.orig
++++ source3/nmbd/nmbd_packets.c
+@@ -1696,7 +1696,7 @@ static bool create_listen_fdset(fd_set *
+       /* each interface gets 4 sockets */
+       count *= 4;
+ 
+-      if(count > FD_SETSIZE) {
++      if(count >= FD_SETSIZE) {
+               DEBUG(0,("create_listen_fdset: Too many file descriptors needed 
(%d). We can \
+ only use %d.\n", count, FD_SETSIZE));
+               SAFE_FREE(pset);
+@@ -1712,6 +1712,12 @@ only use %d.\n", count, FD_SETSIZE));
+       FD_ZERO(pset);
+ 
+       /* Add in the lp_socket_address() interface on 137. */
++      if (ClientNMB < 0 || ClientNMB >= FD_SETSIZE) {
++              errno = EBADF;
++              SAFE_FREE(pset);
++              return True;
++      }
++
+       FD_SET(ClientNMB,pset);
+       sock_array[num++] = ClientNMB;
+       *maxfd = MAX( *maxfd, ClientNMB);
+@@ -1721,18 +1727,29 @@ only use %d.\n", count, FD_SETSIZE));
+ 
+       /* Add in the 137 sockets on all the interfaces. */
+       for (subrec = FIRST_SUBNET; subrec; subrec = 
NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) {
++              if (subrec->nmb_sock < 0 || subrec->nmb_sock >= FD_SETSIZE) {
++                      /* We have to ignore sockets outside FD_SETSIZE. */
++                      continue;
++              }
+               FD_SET(subrec->nmb_sock,pset);
+               sock_array[num++] = subrec->nmb_sock;
+               *maxfd = MAX( *maxfd, subrec->nmb_sock);
+ 
+-              sock_array[num++] = subrec->nmb_bcast;
+-              if (subrec->nmb_bcast != -1) {
+-                      FD_SET(subrec->nmb_bcast,pset);
+-                      *maxfd = MAX( *maxfd, subrec->nmb_bcast);
++              if (subrec->nmb_bcast < 0 || subrec->nmb_bcast >= FD_SETSIZE) {
++                      /* We have to ignore sockets outside FD_SETSIZE. */
++                      continue;
+               }
++              sock_array[num++] = subrec->nmb_bcast;
++              FD_SET(subrec->nmb_bcast,pset);
++              *maxfd = MAX( *maxfd, subrec->nmb_bcast);
+       }
+ 
+       /* Add in the lp_socket_address() interface on 138. */
++      if (ClientDGRAM < 0 || ClientDGRAM >= FD_SETSIZE) {
++              errno = EBADF;
++              SAFE_FREE(pset);
++              return True;
++      }
+       FD_SET(ClientDGRAM,pset);
+       sock_array[num++] = ClientDGRAM;
+       *maxfd = MAX( *maxfd, ClientDGRAM);
+@@ -1742,10 +1759,18 @@ only use %d.\n", count, FD_SETSIZE));
+ 
+       /* Add in the 138 sockets on all the interfaces. */
+       for (subrec = FIRST_SUBNET; subrec; subrec = 
NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) {
++              if (subrec->dgram_sock < 0 || subrec->dgram_sock >= FD_SETSIZE) 
{
++                      /* We have to ignore sockets outside FD_SETSIZE. */
++                      continue;
++              }
+               FD_SET(subrec->dgram_sock,pset);
+               sock_array[num++] = subrec->dgram_sock;
+               *maxfd = MAX( *maxfd, subrec->dgram_sock);
+ 
++              if (subrec->dgram_bcast < 0 || subrec->dgram_bcast >= 
FD_SETSIZE) {
++                      /* We have to ignore sockets outside FD_SETSIZE. */
++                      continue;
++              }
+               sock_array[num++] = subrec->dgram_bcast;
+               if (subrec->dgram_bcast != -1) {
+                       FD_SET(subrec->dgram_bcast,pset);
+@@ -1876,7 +1901,7 @@ bool listen_for_packets(bool run_electio
+ 
+ #ifndef SYNC_DNS
+       dns_fd = asyncdns_fd();
+-      if (dns_fd != -1) {
++      if (dns_fd >= 0 && dns_fd < FD_SETSIZE) {
+               FD_SET(dns_fd, &r_fds);
+               maxfd = MAX( maxfd, dns_fd);
+       }
+Index: source3/utils/smbfilter.c
+===================================================================
+--- source3/utils/smbfilter.c.orig
++++ source3/utils/smbfilter.c
+@@ -170,8 +170,8 @@ static void filter_child(int c, struct s
+               int num;
+               
+               FD_ZERO(&fds);
+-              if (s != -1) FD_SET(s, &fds);
+-              if (c != -1) FD_SET(c, &fds);
++              if (s >= 0 && s < FD_SETSIZE) FD_SET(s, &fds);
++              if (c >= 0 && c < FD_SETSIZE) FD_SET(c, &fds);
+ 
+               num = sys_select_intr(MAX(s+1, c+1),&fds,NULL,NULL,NULL);
+               if (num <= 0) continue;
+@@ -244,6 +244,9 @@ static void start_filter(char *desthost)
+               socklen_t in_addrlen = sizeof(ss);
+               
+               FD_ZERO(&fds);
++              if (s < 0 || s >= FD_SETSIZE) {
++                      break;
++              }
+               FD_SET(s, &fds);
+ 
+               num = sys_select_intr(s+1,&fds,NULL,NULL,NULL);
+Index: source3/winbindd/winbindd_dual.c
+===================================================================
+--- source3/winbindd/winbindd_dual.c.orig
++++ source3/winbindd/winbindd_dual.c
+@@ -1460,6 +1460,13 @@ static bool fork_domain_child(struct win
+ 
+               FD_ZERO(&r_fds);
+               FD_ZERO(&w_fds);
++
++              if (state.sock < 0 || state.sock >= FD_SETSIZE) {
++                      TALLOC_FREE(frame);
++                      perror("EBADF");
++                      _exit(1);
++              }
++
+               FD_SET(state.sock, &r_fds);
+               maxfd = state.sock;
+ 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/series new/patches/series
--- old/patches/series  2011-01-25 10:06:08.000000000 +0100
+++ new/patches/series  2011-02-21 23:36:51.000000000 +0100
@@ -14,6 +14,8 @@
 samba.org/CVE-2010-3069.diff -p0 # bnc 637755
 samba.org/ac0ffba004160693ea5829775d732146ef261c47 -p0 # bso 7791, bnc 656112
 samba.org/0afb2995a2177afa2eb7b8f99887a39cdaf23a15 -p0 # bso 7791, bnc 656112
+samba.org/9c12232f1ae36e00d04114ad73edd8ba3c2c6a5c -p0 # bnc 666460
+samba.org/CVE-2011-0719.diff -p0 # bnc 670431, bso 7949
 
 # SuSE specific changes
 # disabled -> WIP lmuelle
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/suse/async_printcap_svc_update.diff 
new/patches/suse/async_printcap_svc_update.diff
--- old/patches/suse/async_printcap_svc_update.diff     2011-01-11 
22:44:47.000000000 +0100
+++ new/patches/suse/async_printcap_svc_update.diff     2011-02-21 
23:39:29.000000000 +0100
@@ -138,7 +138,7 @@
 ===================================================================
 --- source3/smbd/server.c.orig
 +++ source3/smbd/server.c
-@@ -734,9 +734,9 @@ static void smbd_parent_loop(struct smbd
+@@ -735,9 +735,9 @@ static void smbd_parent_loop(struct smbd
  /* NOTREACHED return True; */
  }
  
@@ -151,7 +151,7 @@
  void reload_printers(void)
  {
        int snum;
-@@ -744,9 +744,9 @@ void reload_printers(void)
+@@ -745,9 +745,9 @@ void reload_printers(void)
        int pnum = lp_servicenumber(PRINTERS_NAME);
        const char *pname;
  
@@ -163,7 +163,7 @@
        for (snum = 0; snum < n_services; snum++) {
                /* avoid removing PRINTERS_NAME or non-autoloaded printers */
                if (snum == pnum || !(lp_snum_ok(snum) && lp_print_ok(snum) &&
-@@ -793,7 +793,7 @@ bool reload_services(bool test)
+@@ -794,7 +794,7 @@ bool reload_services(bool test)
  
        ret = lp_load(get_dyn_CONFIGFILE(), False, False, True, True);
  
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/suse/printcap_cache_time_abide.diff 
new/patches/suse/printcap_cache_time_abide.diff
--- old/patches/suse/printcap_cache_time_abide.diff     2011-01-11 
22:45:37.000000000 +0100
+++ new/patches/suse/printcap_cache_time_abide.diff     2011-02-21 
23:39:35.000000000 +0100
@@ -20,7 +20,7 @@
 ===================================================================
 --- source3/smbd/server.c.orig
 +++ source3/smbd/server.c
-@@ -541,6 +541,14 @@ static bool smbd_open_one_socket(struct
+@@ -542,6 +542,14 @@ static bool smbd_open_one_socket(struct
        return true;
  }
  
@@ -35,7 +35,7 @@
  /****************************************************************************
   Open the socket communication.
  ****************************************************************************/
-@@ -668,6 +676,14 @@ static bool open_sockets_smbd(struct smb
+@@ -669,6 +677,14 @@ static bool open_sockets_smbd(struct smb
        claim_connection(NULL,"",
                         FLAG_MSG_GENERAL|FLAG_MSG_SMBD|FLAG_MSG_DBWRAP);
  
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/suse/remove_pcap_cache_loaded_asserts.diff 
new/patches/suse/remove_pcap_cache_loaded_asserts.diff
--- old/patches/suse/remove_pcap_cache_loaded_asserts.diff      2011-01-25 
10:06:08.000000000 +0100
+++ new/patches/suse/remove_pcap_cache_loaded_asserts.diff      2011-02-21 
23:39:36.000000000 +0100
@@ -15,7 +15,7 @@
 ===================================================================
 --- source3/smbd/server.c.orig
 +++ source3/smbd/server.c
-@@ -760,8 +760,6 @@ void reload_printers(void)
+@@ -761,8 +761,6 @@ void reload_printers(void)
        int pnum = lp_servicenumber(PRINTERS_NAME);
        const char *pname;
  

++++++ vendor-files.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor-files/tools/package-data 
new/vendor-files/tools/package-data
--- old/vendor-files/tools/package-data 2011-01-25 10:06:24.000000000 +0100
+++ new/vendor-files/tools/package-data 2011-03-07 17:07:55.000000000 +0100
@@ -1,2 +1,2 @@
 # This is an autogenrated file.
-SAMBA_PACKAGE_SVN_VERSION="2489"
+SAMBA_PACKAGE_SVN_VERSION="2508"


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to