Re: [PATCH 11/16] ibacm: Add thread to monitor IP address changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/28/14 16:51, Weiny, Ira wrote:
>> On 03/28/14 06:50, sean.hefty@xxxxxxxxx wrote:
>>> +	while ((len = recv(sock, buffer, NL_MSG_BUF_SIZE, 0)) > 0) {
>>> +		nlh = (struct nlmsghdr *)buffer;
>>> +		while ((NLMSG_OK(nlh, len)) && (nlh->nlmsg_type !=
>> NLMSG_DONE)) {
>>> +			struct ifaddrmsg *ifa = (struct ifaddrmsg *)
>> NLMSG_DATA(nlh);
>>> +			struct ifinfomsg *ifi = (struct ifinfomsg *)
>> NLMSG_DATA(nlh);
>>> +			struct rtattr *rth = IFA_RTA(ifa);
>>> +			int rtl = IFA_PAYLOAD(nlh);
>>> +
>>> +			switch (nlh->nlmsg_type) {
>>> +			[ ... ]
>>> +			nlh = NLMSG_NEXT(nlh, len);
>>> +		}
>>> +	}
>>
>> Is there any reason why this code doesn't handle netlink buffer overflows
>> (ENOBUFS) ? From the netlink(7) man page:
> 
> No reason other than my inexperience with netlink.

In that case it's probably helpful to have a look at the libnl
documentation. I'm not saying that library should be used here but it's
accompanied by excellent documentation about the netlink protocol. See
also http://www.carisma.slowglass.com/~tgr/libnl/ and
http://www.carisma.slowglass.com/~tgr/libnl/doc/core.html.

Bart.

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux