From de79f906ab614dd0d53129c4d4aa18a964864f39 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 8 Apr 2015 12:53:50 +0200 Subject: sd-rtnl: properly size attribute array if IFA_FLAGS was missing --- src/libsystemd/sd-rtnl/rtnl-types.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libsystemd/sd-rtnl') diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c b/src/libsystemd/sd-rtnl/rtnl-types.c index 5ae47900a3..49784bf6c6 100644 --- a/src/libsystemd/sd-rtnl/rtnl-types.c +++ b/src/libsystemd/sd-rtnl/rtnl-types.c @@ -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 }, -- cgit v1.2.3-54-g00ecf