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]
