Hi all,

I'm stumbling upon a weird message from Valgrind when run on my application as follows:

$ valgrind --vgdb=yes --vgdb-error=0 --undef-value-errors=no $my_app

So Valgrind reports:

==1644== Thread 9:
==1644== Invalid read of size 8
==1644==    at 0x4A39B40: PR_int__give_lang_env_for_slave (PR__int.c:348)
==1644==  Address 0x12d152c8 is 24 bytes inside a block of size 104 alloc'd
==1644==    at 0x483577F: malloc (vg_replace_malloc.c:309)
==1644==    by 0x4A3C4B4: [...]

I struggle to understand how a read into a block of properly alloc'd memory can be invalid, given that the application doesn't use client requests.
To be sure, I double-checked the status of the entire buffer under vgdb:

(gdb) mo xb 0x12d152b0 104
Address 0x12D152B0 len 104 has 104 bytes unaddressable

How can a block of dynamically-allocated memory be marked unaddressable without having been freed?

Thanks in advance for your help!
Paul-Antoine Arras

Valgrind-users mailing list

Reply via email to