I have a strange problem with malloc. After allocating <10mb with several mallocs, malloc suddenly returns the address 0x100000000that SIGSEGV calls upon access. I have no idea what is wrong. The parameter is errnoset to value 0, and I have enough space in ram, so this should not be a space problem. The last addresses returned by malloc were less than 0x6255f0. Any idea what to look for?
Some information about my system:
- gcc version 4.4.5 (Ubuntu / Linaro 4.4.4-14ubuntu5)
- flags: -Wall
- uname: 2.6.35-27-generi # 48-Ubuntu SMP Tue 22 Feb 20:25:46 UTC 2011 x86_64 GNU / Linux
PMAP Output:
Address Kbytes RSS Dirty Mode Mapping
0000000000400000 0 32 0 r-x
000000000060a000 0 4 4 r
000000000060b000 0 4 4 rw
000000000060c000 0 116 116 rw
00007ffff75cd000 0 348 0 r-x
00007ffff7747000 0 0 0
00007ffff7946000 0 16 16 r
00007ffff794a000 0 4 4 rw
00007ffff794b000 0 12 12 rw
00007ffff7950000 0 32 0 r-x
00007ffff79d2000 0 0 0
00007ffff7bd1000 0 4 4 r
00007ffff7bd2000 0 4 4 rw
00007ffff7bd3000 0 28 0 r-x
00007ffff7bdb000 0 0 0
00007ffff7dda000 0 4 4 r
00007ffff7ddb000 0 4 4 rw
00007ffff7ddc000 0 108 4 r-x
00007ffff7f6c000 0 432 432 rw
00007ffff7ff8000 0 12 12 rw
00007ffff7ffb000 0 4 0 r-x
00007ffff7ffc000 0 4 4 r
00007ffff7ffd000 0 4 4 rw
00007ffff7ffe000 0 4 4 rw
00007ffffffde000 0 16 16 rw
ffffffffff600000 0 0 0 r-x
total kB 9160 1196 648
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7bd8e67 in bound_knapsack (sizes=0x610b30, profits=0x610ad0, B=103,
limit=2) at /home/x/Development/binpacking/src/lib/knapsack.c:123
UPDATE
valgrind : calloc :
calloc( n, sizeof(unsigned int));
:
calloc( n, sizeof(unsigned int*));
, malloc.
!