summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2019-09-17 23:38:11 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2019-09-17 23:38:11 +0100
commitf4570a565611f04926773ebd38077908015ea913 (patch)
tree81e146ea20ad2536c2b21453affbedda4d995611 /5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
parent5.2: copy 5.1 patches as-is (diff)
downloadlinux-headers-patches-f4570a565611f04926773ebd38077908015ea913.tar.gz
linux-headers-patches-f4570a565611f04926773ebd38077908015ea913.tar.bz2
linux-headers-patches-f4570a565611f04926773ebd38077908015ea913.zip
5.3: copy 5.2 patches as is
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to '5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch')
-rw-r--r--5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch b/5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
new file mode 100644
index 0000000..1fed99d
--- /dev/null
+++ b/5.3/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
@@ -0,0 +1,43 @@
+From cb87a9562cca933c97a482f09a36542b876608e8 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 5 Mar 2015 00:26:58 -0500
+Subject: [PATCH] netlink: drop (int) cast on length arg in NLMSG_OK
+
+The NLMSG_OK macro compares three things:
+ - the len arg from the user
+ - a size_t: sizeof(struct nlmsghdr)
+ - an int: sizeof(struct nlmsghdr) casted
+ - an u32: the nlmsghdr->nlmsg_len member
+
+When building with -Wsign-compare, this macro triggers a signed compare
+warning. This is because it compares len to an int, and then compares
+it to a u32. If len is signed, we get a warning due to the last test.
+If len is unsigned, we get a warning due to the first test. Like in
+strace:
+socketutils.c:145:8: warning: comparison between signed and unsigned
+ integer expressions [-Wsign-compare]
+
+Lets drop the int cast on the first sizeof. This way, once the user
+casts len to an unsigned value, everything shakes out correctly.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/netlink.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
+index 776bc92e9118..d0c4df5fa670 100644
+--- a/include/uapi/linux/netlink.h
++++ b/include/uapi/linux/netlink.h
+@@ -94,7 +94,7 @@ struct nlmsghdr {
+ #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
+ #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
+ (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
+-#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
++#define NLMSG_OK(nlh,len) ((len) >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len <= (len))
+ #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
+--
+2.16.1
+