]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
libnetlink: Modify the parser to track first duplicated attributes
authorWilliams, Mitch A <mitch.a.williams@intel.com>
Wed, 10 Feb 2010 01:46:47 +0000 (01:46 +0000)
committerStephen Hemminger <stephen.hemminger@vyatta.com>
Thu, 4 Mar 2010 00:33:28 +0000 (16:33 -0800)
Modify the parser to keep track of the first of any duplicated attributes,
instead of the last. This is required for VF configuration reporting, where
multiple attributes of the same type are added sequentially.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
lib/libnetlink.c

index 4ba60190da6ffe8a2b9ce39f0a1e9d4e06ba0371..cfeb8941cc07843cf5eef2cd4c6b0a812bee3eb7 100644 (file)
@@ -644,7 +644,7 @@ int parse_rtattr(struct rtattr *tb[], int max, struct rtattr *rta, int len)
 {
        memset(tb, 0, sizeof(struct rtattr *) * (max + 1));
        while (RTA_OK(rta, len)) {
-               if (rta->rta_type <= max)
+               if ((rta->rta_type <= max) && (!tb[rta->rta_type]))
                        tb[rta->rta_type] = rta;
                rta = RTA_NEXT(rta,len);
        }