summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2021-07-05 18:14:29 +0200
committerDavid Seifert <soap@gentoo.org>2021-07-05 18:14:29 +0200
commit0d1209841b6d62b1a3af669453da142ef3b68f35 (patch)
tree10c6815dd30fd9bec651d3a8b0ff16819ba046e9 /5.13/00_all_0003-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
parent5.12: new patchset, a copy of 5.11 (diff)
downloadlinux-headers-patches-0d1209841b6d62b1a3af669453da142ef3b68f35.tar.gz
linux-headers-patches-0d1209841b6d62b1a3af669453da142ef3b68f35.tar.bz2
linux-headers-patches-0d1209841b6d62b1a3af669453da142ef3b68f35.zip
5.13: new patchset, a copy of 5.12, with some removed
The following patches have been removed, since they are ancient, no other distro carries similar ones, and they seem to exist solely to allow unportable behaviour. * 00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch * 00_all_0003-convert-PAGE_SIZE-usage.patch * 00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to '5.13/00_all_0003-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch')
-rw-r--r--5.13/00_all_0003-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/5.13/00_all_0003-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch b/5.13/00_all_0003-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
new file mode 100644
index 0000000..1fed99d
--- /dev/null
+++ b/5.13/00_all_0003-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
+