From 745d0e7f4b6e8659cc967291acd33889035127f0 Mon Sep 17 00:00:00 2001 From: Kevin Darbyshire-Bryant Date: Sun, 18 Mar 2018 15:50:04 +0000 Subject: iproute2: fix hidden uint to uin64_t promotion in json_print print_int used 'int' type internally, whereas print_uint used 'uint64_t' These helper functions eventually call vfprintf(fp, fmt, args) which is a variable argument list function and is dependent upon 'fmt' containing correct information about the length of the passed arguments. Unfortunately print_int v print_uint offered no clue to the programmer that internally passed ints to print_uint were being promoted to 64bits, thus the format passed in 'fmt' string vs the actual passed integer could be different lengths. This is even more interesting on big endian architectures where 'vfprintf' would be looking in the middle of an int64 type. Symptoms of this included tc qdisc showing bizarre values for a variety of fields across a variety of qdiscs (e.g. refcnt, flows, quantum) print_u/int now stick with native int size. A similar patch has been sent upstream. Fixes FS#1425 Signed-off-by: Kevin Darbyshire-Bryant --- package/network/utils/iproute2/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'package/network/utils/iproute2/Makefile') diff --git a/package/network/utils/iproute2/Makefile b/package/network/utils/iproute2/Makefile index eaee4838ed..d8ff5e590d 100644 --- a/package/network/utils/iproute2/Makefile +++ b/package/network/utils/iproute2/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=iproute2 PKG_VERSION:=4.15.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2 -- cgit v1.2.3