[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180827023526.GA6515@ZenIV.linux.org.uk>
Date: Mon, 27 Aug 2018 03:35:26 +0100
From: Al Viro <viro@...IV.linux.org.uk>
To: Julia Lawall <julia.lawall@...6.fr>
Cc: Joe Perches <joe@...ches.com>, Kees Cook <keescook@...omium.org>,
LKML <linux-kernel@...r.kernel.org>,
Jamal Hadi Salim <jhs@...atatu.com>,
Cong Wang <xiyou.wangcong@...il.com>,
Jiri Pirko <jiri@...nulli.us>,
"David S. Miller" <davem@...emloft.net>,
Network Development <netdev@...r.kernel.org>
Subject: Re: [PATCH] net: sched: Fix memory exposure from short TCA_U32_SEL
On Sun, Aug 26, 2018 at 10:00:46PM -0400, Julia Lawall wrote:
>
>
> On Sun, 26 Aug 2018, Al Viro wrote:
>
> > On Sun, Aug 26, 2018 at 03:26:54PM -0700, Joe Perches wrote:
> > > On Sun, 2018-08-26 at 22:24 +0100, Al Viro wrote:
> > > > On Sun, Aug 26, 2018 at 11:57:57AM -0700, Joe Perches wrote:
> > > >
> > > > > > That, BTW, is why I hate the use of sizeof(*p) in kmalloc, etc.
> > > > > > arguments. typeof is even worse in that respect.
> > > > >
> > > > > True. Semantic searches via tools like coccinelle could help here
> > > > > but those searches are quite a bit slower than straightforward greps.
> > > >
> > > > Those searches are .config-sensitive as well, which can be much more
> > > > unpleasant than being slow...
> > >
> > > Are they? Julia?
> >
> > They work pretty much on preprocessor output level; if something it ifdef'ed
> > out on given config, it won't be seen...
>
> Coccinelle doesn't care what is ifdef'd out. It only misses the things it
> can't parse. Very strange ifdefs could indeed cause that, but it should
> be a minor problem.
OK, but... what does it do when it sees two definitions of a structure
in different branches of #if/#else/#endif? I think I'm confused about
what it can and cannot do; to restate the original problem:
* we need to find all places where instances of given type
are created. Assume it never is a member of struct/union/array and
no static or auto duration instances exist - everything is dynamically
allocated somewhere.
Can coccinelle do that and if it can, what are the limitations?
Powered by blists - more mailing lists