Re: Segmentation fault when free [SOLVED]

2008-09-20 Thread Unga
--- On Sat, 9/20/08, Giorgos Keramidas [EMAIL PROTECTED] wrote:

  ktrace.out shows:
  malloc_init()
  0x8103400 = malloc(1024)
  malloc_init()
  malloc_init()
  0x810b0b0 = malloc(400)
  :
  so many malloc
  :
  so many free
  :
  malloc/free combinations
  :
  free(0xbfbfc9c9)
 
  1. This clearly shows my program is trying to free a
 memory that has
  not been allocated. How it could have happened?
 
 Aha.  This looks remarkably like an address in the runtime
 stack.  It
 usually happens when you have a function that returns the
 address of a
 'local' variable, instead of a newly allocated heap
 area, i.e.:
 
 char *
 function(void)
 {
 char buffer[100];
 
 return buf;
 }
 

This was indeed the case, worst yet, I was trying to free a part of the buffer 
(as per your example above) by mistake which was not allocated by malloc.

Thank you all who helped me. 

Best regards
Unga





  
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: Segmentation fault when free [SOLVED]

2008-09-20 Thread Giorgos Keramidas
On Sat, 20 Sep 2008 07:04:03 -0700 (PDT), Unga [EMAIL PROTECTED] wrote:
On Sat, 9/20/08, Giorgos Keramidas [EMAIL PROTECTED] wrote:
 : free(0xbfbfc9c9)

 1. This clearly shows my program is trying to free a memory that
 has not been allocated. How it could have happened?

 Aha.  This looks remarkably like an address in the runtime stack.  It
 usually happens when you have a function that returns the address of
 a 'local' variable, instead of a newly allocated heap area, i.e.:

 char *
 function(void)
 {
 char buffer[100];

 return buf;
 }

 This was indeed the case, worst yet, I was trying to free a part of
 the buffer (as per your example above) by mistake which was not
 allocated by malloc.

 Thank you all who helped me.

Great!  You are welcome, of course :)

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]