From: Rafael Zalamena Date: Wed, 30 May 2018 20:04:57 +0000 (-0300) Subject: lib: fix getsockopt_cmsg_data retrieval X-Git-Tag: frr-6.1-dev~115^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=dc094865dbf79b7b6da5499a284598aa5e4ca8a5;p=matthieu%2Ffrr.git lib: fix getsockopt_cmsg_data retrieval The `type` parameter was not being compared with `cmsg_type`, so the result of this function was always a pointer to the first header matching the level. Signed-off-by: Rafael Zalamena --- diff --git a/lib/sockopt.c b/lib/sockopt.c index 815be86c2e..e979bef174 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -75,7 +75,7 @@ static void *getsockopt_cmsg_data(struct msghdr *msgh, int level, int type) for (cmsg = ZCMSG_FIRSTHDR(msgh); cmsg != NULL; cmsg = CMSG_NXTHDR(msgh, cmsg)) - if (cmsg->cmsg_level == level && cmsg->cmsg_type) + if (cmsg->cmsg_level == level && cmsg->cmsg_type == type) return (ptr = CMSG_DATA(cmsg)); return NULL;