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
| ||
|
Date: Thu, 14 Mar 2013 09:47:24 -0000 From: "David Laight" <David.Laight@...LAB.COM> To: "Hannes Frederic Sowa" <hannes@...essinduktion.org>, "Stephen Hemminger" <stephen@...workplumber.org> Cc: "Eric Dumazet" <eric.dumazet@...il.com>, <netdev@...r.kernel.org>, <yoshfuji@...ux-ipv6.org>, <brouer@...hat.com> Subject: RE: [PATCH RFC] ipv6: use stronger hash for reassembly queue hash table > On Wed, Mar 13, 2013 at 09:36:52PM -0700, Stephen Hemminger wrote: > > > +#define INET_FRAG_FIND_CHECK(val) \ > > > + ({ \ > > > + static const char ___mem[] = \ > > > + KERN_ERR pr_fmt( \ > > > + "inet_frag_find: No memory left." \ > > > + " Dropping fragment.\n"); \ > > > + static const char ___limit[] = \ > > > + KERN_WARNING pr_fmt( \ > > > + "inet_frag_find: Fragment hash bucket" \ > > > + " list length grew above limit " \ > > > + __stringify(INETFRAGS_MAXDEPTH) \ > > > + ". Dropping fragment.\n"); \ > > > + bool ___b = true; \ > > > + if (IS_ERR_OR_NULL(val)) { \ > > > + ___b = false; \ > > > + if (PTR_ERR(val) == -ENOBUFS) \ > > > + LIMIT_NETDEBUG(___limit); \ > > > + else \ > > > + LIMIT_NETDEBUG(___mem); \ > > > + } \ > > > + ___b; \ > > > + }) > > > + > > > > Big macros suck, write it as an inline function or better yet a real function. > > I switched to the macro to have string expansion with pr_fmt. So it is visible > from the dmesg if IPv4, IPv6 or IPv6-nf did generate the message. This could > be done with a function, too, but would require a bit more string handling. I'd guess it would be best to have the IS_ERR_OR_NULL() inline calling a real function on error. I'd also have thought that INETFRAGS_MAXDEPTH should be run-time tunable. David
Powered by blists - more mailing lists