Skip to Content.
Sympa Menu

svadev - Re: [svadev] safecode and alloca(0)

svadev AT lists.siebelschool.illinois.edu

Subject: Svadev mailing list

List archive

Re: [svadev] safecode and alloca(0)


Chronological Thread 
  • From: Matthew Wala <wala1 AT illinois.edu>
  • To: John Criswell <criswell AT illinois.edu>
  • Cc: svadev AT cs.uiuc.edu
  • Subject: Re: [svadev] safecode and alloca(0)
  • Date: Tue, 22 Nov 2011 22:17:19 -0600
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev>
  • List-id: <svadev.cs.uiuc.edu>

On Tue, Nov 22, 2011 at 9:48 PM, John Criswell
<criswell AT illinois.edu>
wrote:
> On 11/22/2011 6:48 PM, Matthew Wala wrote:
>>
>> Why does SAFECode allow malloc(0) but disallows alloca(0)?
>
> Hrm.  I'm not sure if this is really what SAFECode *should* do, but I can
> think of some reasons why it does it.
>
> I think malloc(0) does occur in some programs, and SAFECode could easily
> handle it by changing the allocation size to 1 in the poolalloc() function
> back when it was always using the pool allocator run-time.  This cannot be
> done with allocas since alloca is an LLVM instruction and emitted straight
> to machine code.
>
> It may also be the case that malloc(0) is correct (return a pointer to
> zero-sized storage) while alloca(0) is not, but I'd have to check the LLVM
> docs to be certain.
>
> I think the correct thing to do now is to first determine whether malloc(0)
> and alloca(0) are allowed and, if so, permit the pool_register() and
> pool_register_stack() (and their variants) to register zero-sized objects.
>
> That said, this is extremely low priority unless you're seeing a program
> that is breaking because of it.  Unless SAFECode is breaking a correct
> program, you should just file a bug report, and we'll get back to it when we
> have time.  Testing SAFECode out on larger programs is higher priority at
> present as well as fixing more serious bugs such as PR#11414 and PR#11423.
>
> -- John T.
>

I've confirmed that malloc(0) can occur and alloca(0) fails with an
assertions.
I'm seeing alloca(0) occur in my patched versions of tar/cpio.

Matt

>
>
>>
>> Matt
>> _______________________________________________
>> svadev mailing list
>> svadev AT cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/svadev
>
>





Archive powered by MHonArc 2.6.16.

Top of Page