Add fix from upstream for buffer overflows when running `tc qdisc show` #546928 by...
authorMike Frysinger <vapier@gentoo.org>
Mon, 20 Apr 2015 20:51:20 +0000 (20:51 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 20 Apr 2015 20:51:20 +0000 (20:51 +0000)
Package-Manager: portage-2.2.18/cvs/Linux x86_64
Manifest-Sign-Key: 0xD2E96200

sys-apps/iproute2/ChangeLog
sys-apps/iproute2/Manifest
sys-apps/iproute2/files/iproute2-4.0.0-tc-show-buffer-overflow.patch [new file with mode: 0644]
sys-apps/iproute2/iproute2-4.0.0-r1.ebuild [new file with mode: 0644]

index ba3c0bb59289ad943b190f1dd72817297d89a954..178fb390ffcf5a7ba691133e82a53e441d2819cf 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for sys-apps/iproute2
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/iproute2/ChangeLog,v 1.251 2015/04/15 11:58:43 polynomial-c Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/iproute2/ChangeLog,v 1.252 2015/04/20 20:51:18 vapier Exp $
+
+*iproute2-4.0.0-r1 (20 Apr 2015)
+
+  20 Apr 2015; Mike Frysinger <vapier@gentoo.org>
+  +files/iproute2-4.0.0-tc-show-buffer-overflow.patch,
+  +iproute2-4.0.0-r1.ebuild:
+  Add fix from upstream for buffer overflows when running `tc qdisc show`
+  #546928 by jamesrutledge.
 
 *iproute2-4.0.0 (15 Apr 2015)
 
index ebef80157a08fc29115076808738f94379248ab5..8c67813d1cab6db3bb4551a1ea147019f1e9d120 100644 (file)
@@ -16,6 +16,7 @@ AUX iproute2-3.6.0-pkg-config.patch 2286 SHA256 46649856ad9e735e403bc0654d1c1afc
 AUX iproute2-3.7.0-clang.patch 2636 SHA256 f56ba110293cf383e67e18df494cbbf2d934e79ed3b21ddd8644c78183d27e16 SHA512 f89dc88ddbd2ffab3d6735261c2117e6cd4a92111fe2b167d453112ff90ce8fc2dd8de83eae3a76b2eed5dedf4a5f631b9ed48f4427acbfaa75382fef1fa1783 WHIRLPOOL a4272f6d58672a4039df57a6585c935af50bbf8f6541d39fefc59acb80ec44b0da18ef5bb2c05f963e6376bc28d1cf9eab3b80c570019ee77bb651d70af94e3d
 AUX iproute2-3.7.0-man7.patch 1350 SHA256 71653ab06c937de2c01370b39c16e5a9d22c1b25d8b5ade3febff7be888ad29e SHA512 0fdfa23e7c51b09335ef32b8baa53a6fd60490b5a531252a5b192f4470e08b4acec2cd568d5644df203e72b62ff0fcf656a57c089ce4511db2a5fe8b10f01d0a WHIRLPOOL 6afd7653447a17b9ecd40d44490a01e610f9fc5f281081508b5421498460ae58bf37ef5fd7b36e4928a0ecb7ec404f50f3d984812d0e33ce08cd735da8e7e03c
 AUX iproute2-3.8.0-old-mount-libc.patch 871 SHA256 dc9fc407b09763f79663dbad627961f8a3446881737cc666f0cb67235f160d51 SHA512 cda73ce07c21d18c68fcff08e282e87a2d4b53cf7779e8a1ef669d7275974c8f3638ca530031aafcfc7eb4885264ceb7abb308b9da6f5568889a84cb4c7df1f9 WHIRLPOOL d2057e6bad82dce7844886d551d70af9207e111494b9cc23abc433857741afa48f30671091c8821a60aaa07ca621f243fbeee10322da11ac44d02f4f588b88bf
+AUX iproute2-4.0.0-tc-show-buffer-overflow.patch 1717 SHA256 2ddb5ea744185f5ebff79961a054570b166ad1a5f3df0b91b59927d1b86c7aa3 SHA512 f5b507ce9d9a2cf4b86c0c2e2a18c5295226707df707eb229ec2f880b0fee64740a039fe5aa334c1dfc2d04faec4200cdb27dfaf631119a8705dd698f2767a77 WHIRLPOOL 801e25b3f6984b59d95eb494dfa63502e2c32551c8f5376ab6109a6bf5b9401f1b7bf6a0e0456dc68abb207d9505b5dbade675ea39e709e27a839357a431c444
 DIST iproute2-2.6.38.tar.bz2 390166 SHA256 47629a4f547f21d94d8e823a87dd8e13042cadecefea2e2dc433e4134fa9aec4 SHA512 b3a0c15c41184554da1b7f2521f5f0586ae0df1a62899afe2514d4adb93f05ecfd10fc964e027ec8f83a990586f5858b0c9fb24ea8c78477ec6c7c51593c54bd WHIRLPOOL bbd3a415c8396adf1ab63f2f3c91591c65809f8da12f6333f6ea66997cbca428ec2339759f53d0bcc41a1e9c85718e598efde0206a000d394560cacc9a78e8cc
 DIST iproute2-3.17.0.tar.xz 440188 SHA256 09e406636e7598e46d5d4f7b928bf5db57049d65dbeb9a496005957ee16f6000 SHA512 1bc261526b0c72fe79b792f0ae497420ac66641dc24a067c903275c63b51b257f540ca6fc6a3d60f93f416c5111841ea53ca28b038e51217a24783171ee4dacd WHIRLPOOL 58bd417385272140260bbd56d379881f7218e789580b874dc9bed06931097a67286f5a63966a730362079aa83903c965dce84575283d656d47a665edbb9599c4
 DIST iproute2-3.19.0.tar.xz 455004 SHA256 e2f9f8c36e166f2ba6c0e1e7a9ad84cdf7c1615b93df49dac44563d7b57fd7b0 SHA512 fc533b6a526cfda234f043ac25302a3206a81ab2a740640b997b6bfb22e6f94ddc21b704191a358ea8721a327ba785e0224a4b4129111ef5008b4003379c3706 WHIRLPOOL 6a0aa1a948286d7dcb3663d787167c27760d756385295bf0ca631920aed50fbd984c19204247097116ef0d4e293c3c8dbe13b0b44c6ec83e7815a7461293c89f
@@ -27,24 +28,25 @@ EBUILD iproute2-3.17.0.ebuild 3638 SHA256 6c16e44f1d90bd4d113a3bb7047e3a10e27c3c
 EBUILD iproute2-3.19.0.ebuild 3646 SHA256 0a928d599c24194608e1306d6bc2b7153bc19bd28fe19ed76ea330a69e651660 SHA512 a554d352eb84654fcbbb7749fc4cb14dbe5e9b2deef0fa2d89b34638b74dc985e99aedadd6cf4db0eeef0f94427e44cb06470764d35f38d8e260c703e6b297f0 WHIRLPOOL ace812ab066d16349168b7b1267417bb198d969e898d1d89eb6b3b7c0134c9a8ccb6f32309bd0c7ec3c546e917fce33673bcb748749e16bfd3b2fff37f0bd037
 EBUILD iproute2-3.3.0.ebuild 2972 SHA256 1e09b07a850aea92e7e57a0adef53246ff7cc8d8498ba7ccadf8eb0cd814bebc SHA512 2ddd5321a9f378322b72fe5fd9dc7c45b6e2ef26cacf42f5d731127b8e249495e2adbb36f1972174424f28a493b4a82b5610add9961855a8559d746cdbab9eb0 WHIRLPOOL 5c3716f6ab9a18e2fea0e8acaa0e2bd347edc189e2b485e61f5373327c7f675499f7e239961697b78e21393dcde2a5994c17c420c649b3503fdfaefbcbe1fa57
 EBUILD iproute2-3.8.0.ebuild 3493 SHA256 e9fb3f69673cf3e6cec6abf83ca59bbf84af19547fc5245e23f9b8af2f8d6dff SHA512 38180309ad908833407c6fa681aa4e7b0fa5e3723d8a4d9667d161adf8c90fe2a6565c82989a7681179b8943553ebd71c8858b59f1b545465189df1a4e7b4682 WHIRLPOOL a59f47eb73a56790f9314ed386fb18eae47152d1d7e4d986ee859ac59eec2798026148ec691259e0ba6011f31f0f965af9846853b670f245de3496bfcd934c20
+EBUILD iproute2-4.0.0-r1.ebuild 3719 SHA256 2b099227b5e0648519d27fae7cc036f1353607cd247b2a110b58207f37bb71f5 SHA512 b998e1cf87b650f2f5781e0e1785dd5d8f0ca1081e3cb8105ae66fa9869594066bbd693b20280284ed5a5101f26331c883ef2c6dd85ff8c5707cf0c14c760955 WHIRLPOOL dd75cffae714679d09fa725211223416ef83147bb33447d71e6c5c597f14fc537df8f6f0096e5ce545cf107d78f41b3911a41b41472e3a5ff0dc4286a97a0d1f
 EBUILD iproute2-4.0.0.ebuild 3657 SHA256 c9d9f723a03194a8957f9a1450145ce818521f3cc2d6e5d2aa56dd1891777e58 SHA512 ae24da9eca350f10b8ca65901fa5b9febf17a4b2d140c95e97287adc0bad00e23c1a27e6208fbeb21183fce8c550c9770ae14f79c96e54e37918ec782924eaa1 WHIRLPOOL 25b91bc7ae6caaf0569bab1300a93a3203349ab051f80f439815ddb187458250921474a847f3493d9c8e6803e74f9951d3944ac01dd24317ad00f587c0638cbd
 EBUILD iproute2-9999.ebuild 3062 SHA256 10aa54bddb521f3d3a37cb07e3ace119e1ce846cb63c5080da8d683c78190bbd SHA512 f01b7583c50e1b2d464aed3be7162e9a7ff59571ea13384b1555222bc6670b83577af55eb835b6e82de66ae154b1965418a76d42295c49130d264971c6704236 WHIRLPOOL 49a9699cfd677a8df2084a104eef77c720de6ac3ad8556f2ce3f22f5bdd2e786d5056001a6ab53d5dc8209c56ce331495c37895de5a29c4c9bbf0959dc2e4637
-MISC ChangeLog 41621 SHA256 e7bcdaa6bf373f9d60f1fef26086d2d4a5a765013e442837906eb3d67993bbce SHA512 8e803c9389bf26f21b7e00b263072668c96c143fd0639f58334ff6199e646f293caf4d8410b7b3bb56a0acf397562b913f8010f5cb3b023082e690730c6d2a07 WHIRLPOOL 2f61b63074eb9691074d5d7f30a3d4ce3a69f33886cdfdadd03ee0e9a781105c6a95cd29c3dec4e7612f0131e7cb2b1216970f4cbdaf24d30409d2465fab9a3b
+MISC ChangeLog 41886 SHA256 6112f63afe0aec6085f43ed406d87d0500cb8eecd492e0f3439199f241887b6e SHA512 480fce8f860358a7c0ab3c9b3a3d279fe1858c785a70a3085f0db28626ffb962bf9b4754b06853b70bbc3ffdab8aae34c2441af3f2bcb041d5a57c35ed18a063 WHIRLPOOL 399df8bfac83b01c50860e9ba457ac15fa03920c53486504d9a07a9432858bfb31bf5063aa2e7180b68b42c1c87c51a25089338be0846741273a690d7aaa1a1b
 MISC metadata.xml 317 SHA256 45312a0c8b9363b8eaa97110513ca39053ffcd967af978900ee0a01aa81c00aa SHA512 2e6ed50522276dd0b09a61ba0c68ccc226ff33b64da2af87e92e349354f379cae040eb753961aeedc2a894eb65415fba7763541efe21bf328fe0a69706aeb872 WHIRLPOOL 73003e9201c29cba545b3245b53da9c36dc4b3c209ece693a9401b954896f6db5d29b209318fb7dd1c33db8920d01e097feaa88ef4ec0cb07590e850803bce09
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iQIcBAEBCAAGBQJVLlJ0AAoJEPiazRVxLXTFBRgQAM/7d41J+SECRmO7zV0HNkI2
-Ct3jjuhhOnItxjgpxSSTqxNIFAxzSpDNb0W04CJb/vAuOLZ81DfrRV9sXZuRcwKw
-aT9h4ZK9Z9l9LrZ3FmS+ZVWxGQkZvUb4DGBeN6wzCCAQzIUTiApQwrgFXE8wiZKe
-aaP4G9s+ExPKbJgcShaVqUoEbvv/5WcFog3LmYAvSsEq/gATtD0NUMhmb4PDznwH
-gA57jh5p3XfQ0uV36cqA2WUpIvbWLMJflE+tceUdSwbTlGp1EDY5/85pj5e9kII8
-PgTSCkRvQqGa9yDs+KjBh+qloVmQLH8z2fDtnDw6KnoYLSbRSYzgdvP0TboThSeT
-zj4JoE/kuELWvT+YsqNuQEWJpLgXnZTHB8kXnEbIHA2V++flWsI6YJ+HlYOnqNBK
-QMKhWenf3K0jPxKi2+woZ26ZC2XrehgcgFNtjCEfye/QeM5Gl/JfFtcTksX3UD5d
-56OH7jkzAR2pzit4cRSTMiFhqnRJ8+PNmcOJRvZdI6T0IE6c/EJXX7em3PI/2LPb
-0SIGjZB2/yJQNdc2A5M1ClkkukndnJ4nU4huR6fvbBr0YXYIcCb07LAyd08aLjqc
-GIXYX9gl93+y09gHa6aSrWhimljQ98nvjdE7yKm4zhKibRsSPtquIOBbxRxixloe
-r/843nNtDqEU03886O0u
-=Xllr
+iQIcBAEBCAAGBQJVNWbHAAoJEPGu1DbS6WIA45oP/jKnoGVRsuB8XiQSlU3X9q2l
+axdFNkbSOIKicYiehynaZ0zsTjM7WHIxtGWYv6F6oYXzfJvmRr6HVovH+JQarTao
+cQoi3CQkF3a9bhStxhm1RlWivNceG3de1jgYcfzKp5yVtrRjwJbtWbjeTE4PPvNK
+a1WeL/27F0DaIKBAaxcTfypdU/gvY23l41YqbXU6Gw34X5C8VygwR+6e473ASRwh
+LPzXbwV/yEhhEsHpWxY6kzrN7fQcjCsDFf4OlErXiB7m5P9xK3xZAvzA5vFb4wWR
+trlMCPcVfqR4Qvbz1lJvETFjSggYiI/y5oPYBmr95wynDNd1AnjkwpgtJGnUfx0U
+koQrCaIEdoS+9fuN+FqQp5/IYpGxpjn3JLw1lupkEZeUn5J6dDX+scPE7DDOqisA
+QNQ2oN4/VX3X+QGRmwllsvXisQNR6DnFEw8uGNKhjzieK918WqiuZFp1OJ5z76rZ
+WkXVGq9gTnBnVIzNXW+mvhRpoEHfOabK5qVJidehUV+gaaF8tJ/ST8yp0MdqwrVr
+kxlKp5yjj9wVIbuwbxRzYCORnXpWt1mciK8iy2hNRx1+e+CxXuBMuIjtDyk/F2bh
+plBZSvplKKq20TcUycccOPa8fH09eHnVbi/HCLWdEgg3lM5f13hTvL2z7JZNY8EQ
+MON5l0Phuu5Z6ke0UpQm
+=Kuwd
 -----END PGP SIGNATURE-----
diff --git a/sys-apps/iproute2/files/iproute2-4.0.0-tc-show-buffer-overflow.patch b/sys-apps/iproute2/files/iproute2-4.0.0-tc-show-buffer-overflow.patch
new file mode 100644 (file)
index 0000000..6c6c9a5
--- /dev/null
@@ -0,0 +1,62 @@
+https://bugs.gentoo.org/546928
+
+From 46679bbbe89699016d31486de7599590d02a5054 Mon Sep 17 00:00:00 2001
+From: Vadim Kochan <vadim4j@gmail.com>
+Date: Mon, 20 Apr 2015 08:33:32 +0300
+Subject: [PATCH] tc util: Fix possible buffer overflow when print class id
+
+Use correct handle buffer length.
+
+Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
+---
+ tc/tc_util.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/tc/tc_util.c b/tc/tc_util.c
+index 1d3153d..dc2b70f 100644
+--- a/tc/tc_util.c
++++ b/tc/tc_util.c
+@@ -128,30 +128,31 @@ ok:
+       return 0;
+ }
+ 
+-int print_tc_classid(char *buf, int len, __u32 h)
++int print_tc_classid(char *buf, int blen, __u32 h)
+ {
+-      char handle[40] = {};
++      SPRINT_BUF(handle) = {};
++      int hlen = SPRINT_BSIZE - 1;
+ 
+       if (h == TC_H_ROOT)
+               sprintf(handle, "root");
+       else if (h == TC_H_UNSPEC)
+-              snprintf(handle, len, "none");
++              snprintf(handle, hlen, "none");
+       else if (TC_H_MAJ(h) == 0)
+-              snprintf(handle, len, ":%x", TC_H_MIN(h));
++              snprintf(handle, hlen, ":%x", TC_H_MIN(h));
+       else if (TC_H_MIN(h) == 0)
+-              snprintf(handle, len, "%x:", TC_H_MAJ(h) >> 16);
++              snprintf(handle, hlen, "%x:", TC_H_MAJ(h) >> 16);
+       else
+-              snprintf(handle, len, "%x:%x", TC_H_MAJ(h) >> 16, TC_H_MIN(h));
++              snprintf(handle, hlen, "%x:%x", TC_H_MAJ(h) >> 16, TC_H_MIN(h));
+ 
+       if (use_names) {
+               char clname[IDNAME_MAX] = {};
+ 
+               if (id_to_name(cls_names, h, clname))
+-                      snprintf(buf, len, "%s#%s", clname, handle);
++                      snprintf(buf, blen, "%s#%s", clname, handle);
+               else
+-                      snprintf(buf, len, "%s", handle);
++                      snprintf(buf, blen, "%s", handle);
+       } else {
+-              snprintf(buf, len, "%s", handle);
++              snprintf(buf, blen, "%s", handle);
+       }
+ 
+       return 0;
+-- 
+2.3.5
+
diff --git a/sys-apps/iproute2/iproute2-4.0.0-r1.ebuild b/sys-apps/iproute2/iproute2-4.0.0-r1.ebuild
new file mode 100644 (file)
index 0000000..2df8d47
--- /dev/null
@@ -0,0 +1,125 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/iproute2/iproute2-4.0.0-r1.ebuild,v 1.1 2015/04/20 20:51:18 vapier Exp $
+
+EAPI="5"
+
+inherit eutils toolchain-funcs flag-o-matic multilib
+
+if [[ ${PV} == "9999" ]] ; then
+       EGIT_REPO_URI="git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git"
+       inherit git-2
+else
+       SRC_URI="mirror://kernel/linux/utils/net/${PN}/${P}.tar.xz"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+fi
+
+DESCRIPTION="kernel routing and traffic control utilities"
+HOMEPAGE="http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="atm berkdb +iptables ipv6 minimal selinux"
+
+RDEPEND="!net-misc/arpd
+       iptables? ( >=net-firewall/iptables-1.4.20:= )
+       !minimal? ( berkdb? ( sys-libs/db:= ) )
+       atm? ( net-dialup/linux-atm )
+       selinux? ( sys-libs/libselinux )"
+DEPEND="${RDEPEND}
+       app-arch/xz-utils
+       iptables? ( virtual/pkgconfig )
+       sys-devel/bison
+       sys-devel/flex
+       >=sys-kernel/linux-headers-2.6.27
+       elibc_glibc? ( >=sys-libs/glibc-2.7 )"
+
+src_prepare() {
+       epatch "${FILESDIR}"/${PN}-3.1.0-mtu.patch #291907
+       epatch "${FILESDIR}"/${P}-tc-show-buffer-overflow.patch #546928
+       use ipv6 || epatch "${FILESDIR}"/${PN}-3.10.0-no-ipv6.patch #326849
+
+       sed -i \
+               -e '/^CC =/d' \
+               -e "/^LIBDIR/s:=.*:=/$(get_libdir):" \
+               -e "s:-O2:${CFLAGS} ${CPPFLAGS}:" \
+               -e "/^HOSTCC/s:=.*:= $(tc-getBUILD_CC):" \
+               -e "/^WFLAGS/s:-Werror::" \
+               -e "/^DBM_INCLUDE/s:=.*:=${T}:" \
+               Makefile || die
+
+       # Use /run instead of /var/run.
+       sed -i \
+               -e 's:/var/run:/run:g' \
+               ip/ipnetns.c \
+               man/man8/ip-netns.8 || die
+
+       # build against system headers
+       rm -r include/netinet #include/linux include/ip{,6}tables{,_common}.h include/libiptc
+       sed -i 's:TCPI_OPT_ECN_SEEN:16:' misc/ss.c || die
+
+       # don't build arpd if USE=-berkdb #81660
+       use berkdb || sed -i '/^TARGETS=/s: arpd : :' misc/Makefile
+
+       use minimal && sed -i -e '/^SUBDIRS=/s:=.*:=lib tc:' Makefile
+}
+
+src_configure() {
+       tc-export AR CC PKG_CONFIG
+
+       # This sure is ugly.  Should probably move into toolchain-funcs at some point.
+       local setns
+       pushd "${T}" >/dev/null
+       echo 'main(){return setns();};' > test.c
+       ${CC} ${CFLAGS} ${LDFLAGS} test.c >&/dev/null && setns=y || setns=n
+       echo 'main(){};' > test.c
+       ${CC} ${CFLAGS} ${LDFLAGS} test.c -lresolv >&/dev/null || sed -i '/^LDLIBS/s:-lresolv::' "${S}"/Makefile
+       popd >/dev/null
+
+       cat <<-EOF > Config
+       TC_CONFIG_ATM := $(usex atm y n)
+       TC_CONFIG_XT  := $(usex iptables y n)
+       HAVE_SELINUX  := $(usex selinux y n)
+       IP_CONFIG_SETNS := ${setns}
+       # Use correct iptables dir, #144265 #293709
+       IPT_LIB_DIR := $(use iptables && ${PKG_CONFIG} xtables --variable=xtlibdir)
+       EOF
+}
+
+src_install() {
+       if use minimal ; then
+               into /
+               dosbin tc/tc
+               return 0
+       fi
+
+       emake \
+               DESTDIR="${D}" \
+               LIBDIR="${EPREFIX}"/$(get_libdir) \
+               SBINDIR="${EPREFIX}"/sbin \
+               CONFDIR="${EPREFIX}"/etc/iproute2 \
+               DOCDIR="${EPREFIX}"/usr/share/doc/${PF} \
+               MANDIR="${EPREFIX}"/usr/share/man \
+               ARPDDIR="${EPREFIX}"/var/lib/arpd \
+               install
+
+       rm "${ED}"/usr/share/doc/${PF}/*.{sgml,tex} || die #455988
+
+       dodir /bin
+       mv "${ED}"/{s,}bin/ip || die #330115
+
+       dolib.a lib/libnetlink.a
+       insinto /usr/include
+       doins include/libnetlink.h
+       # This local header pulls in a lot of linux headers it
+       # doesn't directly need.  Delete this header that requires
+       # linux-headers-3.8 until that goes stable.  #467716
+       sed -i '/linux\/netconf.h/d' "${ED}"/usr/include/libnetlink.h || die
+
+       if use berkdb ; then
+               dodir /var/lib/arpd
+               # bug 47482, arpd doesn't need to be in /sbin
+               dodir /usr/bin
+               mv "${ED}"/sbin/arpd "${ED}"/usr/bin/ || die
+       fi
+}