mailing list of musl libc
 help / color / mirror / code / Atom feed
* 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).