chiark / gitweb /
sd-rtnl: properly size attribute array if IFA_FLAGS was missing
[elogind.git] / src / libelogind / sd-rtnl / rtnl-types.c
index 3916b0bd67ce2d72f10c743df66b4f6418570d1c..792c5327dfa14180e7b702c0883bfba64f4f479a 100644 (file)
@@ -372,7 +372,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 },