* Mistake in RTA_OK macro
@ 2018-11-20 23:29 Ondřej Jirman
2018-11-21 16:29 ` [PATCH] Fix incorrect parameter name " megous
0 siblings, 1 reply; 2+ messages in thread
From: Ondřej Jirman @ 2018-11-20 23:29 UTC (permalink / raw)
To: musl
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.
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH] Fix incorrect parameter name in RTA_OK macro
2018-11-20 23:29 Mistake in RTA_OK macro Ondřej Jirman
@ 2018-11-21 16:29 ` megous
0 siblings, 0 replies; 2+ messages in thread
From: megous @ 2018-11-21 16:29 UTC (permalink / raw)
To: musl; +Cc: Ondrej Jirman
From: Ondrej Jirman <megous@megous.com>
The wrong name works only by accident.
---
src/network/netlink.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
This is a proper patch for the issue I've described in a recent e-mail
to the mailing list.
diff --git a/src/network/netlink.h b/src/network/netlink.h
index 38acb178..873fabe2 100644
--- a/src/network/netlink.h
+++ b/src/network/netlink.h
@@ -86,7 +86,7 @@ struct ifaddrmsg {
#define RTA_DATALEN(rta) ((rta)->rta_len-sizeof(struct rtattr))
#define RTA_DATAEND(rta) ((char*)(rta)+(rta)->rta_len)
#define RTA_NEXT(rta) (struct rtattr*)((char*)(rta)+NETLINK_ALIGN((rta)->rta_len))
-#define RTA_OK(nlh,end) ((char*)(end)-(char*)(rta) >= sizeof(struct rtattr))
+#define RTA_OK(rta,end) ((char*)(end)-(char*)(rta) >= sizeof(struct rtattr))
#define NLMSG_RTA(nlh,len) ((void*)((char*)(nlh)+sizeof(struct nlmsghdr)+NETLINK_ALIGN(len)))
#define NLMSG_RTAOK(rta,nlh) RTA_OK(rta,NLMSG_DATAEND(nlh))
--
2.19.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-11-21 16:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-20 23:29 Mistake in RTA_OK macro Ondřej Jirman
2018-11-21 16:29 ` [PATCH] Fix incorrect parameter name " megous
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).