From 69066e3ef9470e5d60fd0c636b84c8de3080aace Mon Sep 17 00:00:00 2001 From: emanuele-f Date: Sun, 4 Jul 2021 14:05:01 +0200 Subject: [PATCH] Fix wrong address used for RTM_GETROUTE --- app/src/main/jni/pcapd/nl_utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/jni/pcapd/nl_utils.c b/app/src/main/jni/pcapd/nl_utils.c index 21b42f1a..fa9495ba 100644 --- a/app/src/main/jni/pcapd/nl_utils.c +++ b/app/src/main/jni/pcapd/nl_utils.c @@ -61,7 +61,7 @@ int nl_get_route(int af, const addr_t *addr, route_info_t *out) { struct iovec iov; struct msghdr msg; u_char buf[512]; - int i, alen, ok, nlsock, rv = -1; + int i, alen, nlsock, rv = -1; nlsock = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE); @@ -79,7 +79,7 @@ int nl_get_route(int af, const addr_t *addr, route_info_t *out) { rmsg = (struct rtmsg *)(nmsg + 1); rmsg->rtm_family = af; - rmsg->rtm_dst_len = alen; + rmsg->rtm_dst_len = alen * 8; rta = RTM_RTA(rmsg); rta->rta_type = RTA_DST; @@ -90,7 +90,7 @@ int nl_get_route(int af, const addr_t *addr, route_info_t *out) { i = htonl(0x60060606); memcpy(RTA_DATA(rta), &i, alen); } else - memcpy(RTA_DATA(rta), &addr, alen); + memcpy(RTA_DATA(rta), addr, alen); memset(&snl, 0, sizeof(snl)); snl.nl_family = AF_NETLINK;