[prev in list] [next in list] [prev in thread] [next in thread]
List: musl
Subject: [musl] Mistake in RTA_OK macro
From: Ondřej Jirman <megi () xff ! cz>
Date: 2018-11-20 23:29:50
Message-ID: 20181120232950.belzgih65diux3qt () core ! my ! home
[Download RAW message or body]
Hello,
This line:
grep -R RTA_OK
src/network/netlink.h:#define RTA_OK(nlh,end) ((char*)(end)-(char*)(rta) >= \
sizeof(struct rtattr))
only works by accident, because all uses of NLMSG_RTAOK reference rta variable:
src/network/getifaddrs.c: for (rta = NLMSG_RTA(h, sizeof(*ifi)); NLMSG_RTAOK(rta, \
h); rta = RTA_NEXT(rta)) {
src/network/getifaddrs.c: for (rta = NLMSG_RTA(h, sizeof(*ifi)); NLMSG_RTAOK(rta, \
h); rta = RTA_NEXT(rta)) {
src/network/getifaddrs.c: for (rta = NLMSG_RTA(h, sizeof(*ifa)); NLMSG_RTAOK(rta, \
h); rta = RTA_NEXT(rta)) { src/network/netlink.h:#define \
NLMSG_RTAOK(rta,nlh) RTA_OK(rta,NLMSG_DATAEND(nlh))
src/network/if_nameindex.c: for (; NLMSG_RTAOK(rta, h); rta = RTA_NEXT(rta)) {
I suggest:
-#define RTA_OK(nlh,end) ((char*)(end)-(char*)(rta) >= sizeof(struct rtattr))
+#define RTA_OK(rta,end) ((char*)(end)-(char*)(rta) >= sizeof(struct rtattr))
thank you and regards,
o.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic