lkml.org 
[lkml]   [2003]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Sparse warning: bitmap.h: bad constant expression
On Tue, 2 September 2003 12:23:44 +0200, Mikael Pettersson wrote:
> =?iso-8859-1?Q?J=F6rn?= Engel writes:
> > On Mon, 1 September 2003 18:57:02 -0700, Dave Olien wrote:
> > >
> > > The problem seems to be that sparse currently will only accept array
> > > declarations with a size that can be evaluated at compile time to
> > > a fixed value. So an array declaration of the form:
> > >
> > > int asize;
> > > int data[asize];
> > >
> > > will fail. sparse needs to be modified to recognize this type of
> > > declaration with a variable array size. That'll take a few hours of
> > > someone's time to fix.
> >
> > Not quite true. The above is an implicit call to alloca and should
> > not exist in the kernel. No need to hack support into sparse.
>
> If data is a local variable then this is perfectly valid example of a
> C99 variable-length array (VLA). This works at least with gcc-2.95.3
> and newer, and gcc handles it by itself w/o calling alloca().
>
> Of course, VLAs should be bounded in size to avoid overflowing the
> kernel stack, but that doesn't make them illegal per se.

Ok, if you prefer this wording:
"It does exactly what alloca() would do, but is harder to grep for."

It uses an unknown amount of stack space, the stack is finite and
small and random bad things happen when it spills over.

Jörn

--
"Security vulnerabilities are here to stay."
-- Scott Culp, Manager of the Microsoft Security Response Center, 2001
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:48    [W:0.058 / U:0.284 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site