diff --git a/ChangeLog b/ChangeLog index 0b4d158a..49a1e9cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,12 @@ +2006-03-10 Jean Tourrilhes + + * Fix endless loop in netlink error handling + 2006-03-10 Russell Stuart * Fix missing memset in tc sample -2006-03-10 shemminger +2006-03-10 Stephen Hemminger * Change default lnstat count to 1 * Update to 2.6.16 headers diff --git a/lib/libnetlink.c b/lib/libnetlink.c index 24e1f0b6..67951fe7 100644 --- a/lib/libnetlink.c +++ b/lib/libnetlink.c @@ -308,6 +308,9 @@ int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer, if (err < 0) return err; } + /* Don't forget to skip that message. */ + status -= NLMSG_ALIGN(len); + h = (struct nlmsghdr*)((char*)h + NLMSG_ALIGN(len)); continue; }