lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20160416075512.GB2486@pox.localdomain> Date: Sat, 16 Apr 2016 09:55:12 +0200 From: Thomas Graf <tgraf@...g.ch> To: Roopa Prabhu <roopa@...ulusnetworks.com> Cc: netdev@...r.kernel.org, jhs@...atatu.com, davem@...emloft.net Subject: Re: [PATCH net-next v3 RFC 2/2] ipv6: add support for stats via RTM_GETSTATS On 04/15/16 at 08:28pm, Roopa Prabhu wrote: > +static size_t inet6_get_link_af_stats_size(const struct net_device *dev, > + u32 filter_mask) > +{ > + if (!(filter_mask & IFLA_STATS_FILTER_BIT(IFLA_STATS_LINK_INET6))) > + return 0; > + > + if (!__in6_dev_get(dev)) > + return 0; > + > + return nla_total_size(sizeof(struct nlattr)) /* IFLA_STATS_LINK_INET6 */ > + + nla_total_size(IPSTATS_MIB_MAX * 8) /* IFLA_INET6_STATS */ > + + nla_total_size(ICMP6_MIB_MAX * sizeof(u64));/* IFLA_INET6_ICMP6STATS */ > +} I think this is a good example. The above is an expensive way to figure out whether you have at least one interface with IPv6 statistics. I'd suggest to turn this into: if (filter_mask & IFLA_STATS_FILTER_BIT(IFLA_STATS_LINK_INET6)) { size += nla_total_size(sizeof(struct nlattr)) /* IFLA_STATS_LINK_INET6 */ + nla_total_size(IPSTATS_MIB_MAX * 8) /* IFLA_INET6_STATS */ + nla_total_size(ICMP6_MIB_MAX * sizeof(u64));/* IFLA_INET6_ICMP6STATS */ } ... and put it into the main calcit function. The user has explicitly opted into IPv6 statistics so I think it's not a waste to allocate resources for it in the message. You could also make it depend on "disable_ipv6" to be more accurate but I think even the above is good enough.
Powered by blists - more mailing lists