sd-rtnl: properly size attribute array if IFA_FLAGS was missing
authorLennart Poettering <lennart@poettering.net>
Wed, 8 Apr 2015 10:53:50 +0000 (12:53 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 8 Apr 2015 10:56:57 +0000 (12:56 +0200)
src/libsystemd/sd-rtnl/rtnl-types.c

index 5ae4790..49784bf 100644 (file)
@@ -348,7 +348,9 @@ static const NLTypeSystem rtnl_link_type_system = {
         .types = rtnl_link_types,
 };
 
-static const NLType rtnl_address_types[IFA_MAX + 1] = {
+/* IFA_FLAGS was defined in kernel 3.14, but we still support older
+ * kernels where IFA_MAX is lower. */
+static const NLType rtnl_address_types[CONST_MAX(IFA_MAX, IFA_FLAGS) + 1] = {
         [IFA_ADDRESS]           = { .type = NLA_IN_ADDR },
         [IFA_LOCAL]             = { .type = NLA_IN_ADDR },
         [IFA_LABEL]             = { .type = NLA_STRING, .size = IFNAMSIZ - 1 },