dl-load.c (ld.so) bug??

Hollis R Blanchard hollis+ at andrew.cmu.edu
Tue Jun 22 23:52:49 EST 1999


On Mon, 21 Jun 1999, Peter Chang wrote:
> 
> At 23:09 -0400 06.21.1999, Daniel Jacobowitz wrote:
> >On Mon, Jun 21, 1999 at 10:48:12PM -0400, Hollis R Blanchard wrote:
> > >
> > > I have two even simpler test cases for you:
> > >
> > > int main(void){
> > >     char *ptr=NULL;
> > >     free(ptr);
> > > }
> >
> >Well, that one would probably segfault anyway (or at least, is not
> >guaranteed not to).
> 
> Hmm... the docs taht I have say this:
> 

[snip]
>  If ptr is a null pointer, no action occurs.
[snip]

Right. In other words, that's legal and should not segfault.

> > > int main(void){
> > >     char *ptr = (char *)malloc(100);
> > > }
> >
> >That one's a problem, though :)
> 
> Why? Its allocating memory, but never freeing it. Its a leak, but not 
> accessing things out of bounds. I haven't used ElectricFence, but its 
> not going to catch a bounds error on this.

Try it. It segfaults. Add a free afterwords if you like. It still segfaults.
Add a printf in front of it, and that printf will never happen. The segfault
starts in __libc_start_main. It makes no sense, but anytime you put a malloc
or a free in a program, EFence makes it segfault (*before* running that malloc
or free).

-Hollis


[[ This message was sent via the linuxppc-dev mailing list.  Replies are ]]
[[ not  forced  back  to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]





More information about the Linuxppc-dev mailing list