Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package bridge-utils for openSUSE:Factory checked in at 2021-06-04 00:33:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bridge-utils (Old) and /work/SRC/openSUSE:Factory/.bridge-utils.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bridge-utils" Fri Jun 4 00:33:39 2021 rev:30 rq:897095 version:1.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/bridge-utils/bridge-utils.changes 2020-12-08 13:25:37.682714043 +0100 +++ /work/SRC/openSUSE:Factory/.bridge-utils.new.1898/bridge-utils.changes 2021-06-04 00:33:56.240935900 +0200 @@ -1,0 +2,7 @@ +Thu Jun 3 00:14:19 UTC 2021 - Ferdinand Thiessen <[email protected]> + +- Update to version 1.7.1 + * fix string overflow warnings + * brctl: fix spelling on man page + +------------------------------------------------------------------- Old: ---- bridge-utils-1.7.tar.sign bridge-utils-1.7.tar.xz New: ---- bridge-utils-1.7.1.tar.sign bridge-utils-1.7.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bridge-utils.spec ++++++ --- /var/tmp/diff_new_pack.EPb3Xs/_old 2021-06-04 00:33:56.760937397 +0200 +++ /var/tmp/diff_new_pack.EPb3Xs/_new 2021-06-04 00:33:56.764937409 +0200 @@ -1,7 +1,7 @@ # # spec file for package bridge-utils # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,20 +17,19 @@ Name: bridge-utils -Version: 1.7 +Version: 1.7.1 Release: 0 Summary: Utilities for Configuring the Linux Ethernet Bridge License: GPL-2.0-or-later Group: Productivity/Networking/Routing URL: https://www.linuxfoundation.org/collaborate/workgroups/networking/bridge -Source0: https://kernel.org/pub/linux/kernel/people/shemminger/%{name}/%{name}-%{version}.tar.xz -Source1: https://kernel.org/pub/linux/kernel/people/shemminger/%{name}/%{name}-%{version}.tar.sign +Source0: https://mirrors.edge.kernel.org/pub/linux/utils/net/bridge-utils/%{name}-%{version}.tar.xz +Source1: https://mirrors.edge.kernel.org/pub/linux/utils/net/bridge-utils/%{name}-%{version}.tar.sign Patch0: %{name}-1.5-hz.diff Patch1: %{name}-1.5-optflags.patch Patch2: bridge-utils-1.5-ip6.patch BuildRequires: automake BuildRequires: libsysfs -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description This package contains utilities for configuring the Linux ethernet @@ -57,10 +56,10 @@ %global _lto_cflags %{_lto_cflags} -ffat-lto-objects autoreconf -fiv %configure -make %{?_smp_mflags} +%make_build %install -make DESTDIR=%{buildroot} install %{?_smp_mflags} +%make_install install -d -m 755 %{buildroot}/sbin install -D -m 644 libbridge/libbridge.h %{buildroot}%{_includedir}/libbridge.h install -D -m 644 libbridge/libbridge.a %{buildroot}%{_libdir}/libbridge.a ++++++ bridge-utils-1.7.tar.xz -> bridge-utils-1.7.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/configure.ac new/bridge-utils-1.7.1/configure.ac --- old/bridge-utils-1.7/configure.ac 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/configure.ac 2021-03-04 18:27:42.000000000 +0100 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([bridge-utils],[1.6]) +AC_INIT([bridge-utils],[1.7]) AC_CONFIG_HEADERS(libbridge/config.h) AC_ARG_WITH([linux-headers], @@ -24,6 +24,7 @@ dnl Checks for library functions. AC_CHECK_FUNCS(gethostname socket strdup uname) AC_CHECK_FUNCS(if_nametoindex if_indextoname) +AC_CHECK_FUNCS(strlcpy strlcat) AC_SUBST(KERNEL_HEADERS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/doc/brctl.8 new/bridge-utils-1.7.1/doc/brctl.8 --- old/bridge-utils-1.7/doc/brctl.8 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/doc/brctl.8 2021-03-04 18:27:42.000000000 +0100 @@ -109,7 +109,7 @@ protocol is a standard, Linux bridges will interwork properly with other third party bridge products. Bridges communicate with each other by sending and receiving BPDUs (Bridge Protocol Data Units). These -BPDUs can be recognised by an ethernet destination address of +BPDUs can be recognized by an ethernet destination address of 01:80:c2:00:00:00. The spanning tree protocol can also be turned off (for those @@ -161,7 +161,7 @@ .SH NOTES .BR brctl(8) -is obsolete. Some features such as STP guard, harpin mode, fastleave and root +is obsolete. Some features such as STP guard, hairpin mode, fast leave and root block are intentionally not implemented in this command. Instead use .B bridge diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/libbridge/libbridge.h new/bridge-utils-1.7.1/libbridge/libbridge.h --- old/bridge-utils-1.7/libbridge/libbridge.h 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/libbridge/libbridge.h 2021-03-04 18:27:42.000000000 +0100 @@ -31,6 +31,9 @@ extern unsigned int if_nametoindex (const char *__ifname); extern char *if_indextoname (unsigned int __ifindex, char *__ifname); +#ifndef HAVE_STRLCPY +size_t strlcpy(char *dst, const char *src, size_t size); +#endif struct bridge_id { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/libbridge/libbridge_devif.c new/bridge-utils-1.7.1/libbridge/libbridge_devif.c --- old/bridge-utils-1.7/libbridge/libbridge_devif.c 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/libbridge/libbridge_devif.c 2021-03-04 18:27:42.000000000 +0100 @@ -30,9 +30,9 @@ static FILE *fpopen(const char *dir, const char *name) { - char path[SYSFS_PATH_MAX]; + char path[PATH_MAX]; - snprintf(path, SYSFS_PATH_MAX, "%s/%s", dir, name); + snprintf(path, PATH_MAX, "%s/%s", dir, name); return fopen(path, "r"); } @@ -91,7 +91,7 @@ goto error; memset(ifindices, 0, sizeof(ifindices)); - strncpy(ifr.ifr_name, brname, IFNAMSIZ); + strlcpy(ifr.ifr_name, brname, IFNAMSIZ); ifr.ifr_data = (char *) &args; if (ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr) < 0) { @@ -119,7 +119,7 @@ (unsigned long) &i, 0, 0 }; memset(info, 0, sizeof(*info)); - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); ifr.ifr_data = (char *) &args; if (ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr) < 0) { @@ -213,7 +213,7 @@ unsigned long args[4] = { BRCTL_GET_PORT_INFO, (unsigned long) &i, index, 0 }; - strncpy(ifr.ifr_name, brname, IFNAMSIZ); + strlcpy(ifr.ifr_name, brname, IFNAMSIZ); ifr.ifr_data = (char *) &args; if (ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr) < 0) { @@ -312,7 +312,7 @@ struct ifreq ifr; unsigned long args[4] = { oldcode, value, 0, 0 }; - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); ifr.ifr_data = (char *) &args; ret = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr); } @@ -373,7 +373,7 @@ struct ifreq ifr; unsigned long args[4] = { oldcode, index, value, 0 }; - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); ifr.ifr_data = (char *) &args; ret = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr); } @@ -429,7 +429,7 @@ struct ifreq ifr; int retries = 0; - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); ifr.ifr_data = (char *) args; retry: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/libbridge/libbridge_if.c new/bridge-utils-1.7.1/libbridge/libbridge_if.c --- old/bridge-utils-1.7/libbridge/libbridge_if.c 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/libbridge/libbridge_if.c 2021-03-04 18:27:42.000000000 +0100 @@ -40,7 +40,7 @@ unsigned long arg[3] = { BRCTL_ADD_BRIDGE, (unsigned long) _br }; - strncpy(_br, brname, IFNAMSIZ); + strlcpy(_br, brname, IFNAMSIZ); ret = ioctl(br_socket_fd, SIOCSIFBR, arg); } @@ -60,7 +60,7 @@ unsigned long arg[3] = { BRCTL_DEL_BRIDGE, (unsigned long) _br }; - strncpy(_br, brname, IFNAMSIZ); + strlcpy(_br, brname, IFNAMSIZ); ret = ioctl(br_socket_fd, SIOCSIFBR, arg); } return ret < 0 ? errno : 0; @@ -75,7 +75,7 @@ if (ifindex == 0) return ENODEV; - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); #ifdef SIOCBRADDIF ifr.ifr_ifindex = ifindex; err = ioctl(br_socket_fd, SIOCBRADDIF, &ifr); @@ -100,7 +100,7 @@ if (ifindex == 0) return ENODEV; - strncpy(ifr.ifr_name, bridge, IFNAMSIZ); + strlcpy(ifr.ifr_name, bridge, IFNAMSIZ); #ifdef SIOCBRDELIF ifr.ifr_ifindex = ifindex; err = ioctl(br_socket_fd, SIOCBRDELIF, &ifr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/libbridge/libbridge_init.c new/bridge-utils-1.7.1/libbridge/libbridge_init.c --- old/bridge-utils-1.7/libbridge/libbridge_init.c 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/libbridge/libbridge_init.c 2021-03-04 18:27:42.000000000 +0100 @@ -46,7 +46,7 @@ /* If /sys/class/net/XXX/bridge exists then it must be a bridge */ static int isbridge(const struct dirent *entry) { - char path[SYSFS_PATH_MAX]; + char path[PATH_MAX]; struct stat st; int ret, saved_errno; @@ -56,7 +56,7 @@ && entry->d_name[2] == '\0'))) return 0; - snprintf(path, SYSFS_PATH_MAX, + snprintf(path, PATH_MAX, SYSFS_CLASS_NET "%s/bridge", entry->d_name); /* Workaround old glibc breakage. @@ -161,7 +161,7 @@ (unsigned long)ifindices, MAX_PORTS, 0 }; memset(ifindices, 0, sizeof(ifindices)); - strncpy(ifr.ifr_name, brname, IFNAMSIZ); + strlcpy(ifr.ifr_name, brname, IFNAMSIZ); ifr.ifr_data = (char *) &args; err = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bridge-utils-1.7/libbridge/libbridge_misc.c new/bridge-utils-1.7.1/libbridge/libbridge_misc.c --- old/bridge-utils-1.7/libbridge/libbridge_misc.c 2020-06-23 19:19:23.000000000 +0200 +++ new/bridge-utils-1.7.1/libbridge/libbridge_misc.c 2021-03-04 18:27:42.000000000 +0100 @@ -48,3 +48,26 @@ const char * s = getenv("HZ"); return s ? atoi(s) : HZ; } + +#ifndef HAVE_STRLCPY +#ifndef min +# define min(x, y) ({ \ + typeof(x) _min1 = (x); \ + typeof(y) _min2 = (y); \ + (void) (&_min1 == &_min2); \ + _min1 < _min2 ? _min1 : _min2; }) +#endif + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + size_t srclen = strlen(src); + + if (size) { + size_t minlen = min(srclen, size - 1); + + memcpy(dst, src, minlen); + dst[minlen] = '\0'; + } + return srclen; +} +#endif
