[vox-tech] another glibc bug?
Peter Jay Salzman
vox-tech@lists.lugod.org
Tue, 6 May 2003 09:59:54 -0700
before i post this to glibc-bug, i'd like to post this just in case
somebody has more information about this:
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <mcheck.h>
// On my system, size_t is an unsigned int.
int main(void)
{
char *p = (char *) malloc(sizeof(char));
if (p == NULL)
abort();
printf("I requested %u bytes.\n", sizeof(char));
printf("p was allocated %u bytes.\n", malloc_usable_size(p));
return 0;
}
the problem is that linking with libmcheck.a seems to completely confuse
calls to malloc_usable_size():
$ gcc -W -Wall try.c
$ ./a.out
I requested 1 bytes.
p was allocated 12 bytes.
$ gcc -W -Wall try.c -lmcheck
$ ./a.out
I requested 1 bytes.
p was allocated 4141754496 bytes.
of course, i don't have this amount of memory on my system.
pete
ps- the patch for the last bug in glibc that i found, malloc_stats()
segfaulting before memory was allocated, was just accepted and will be
in the next release.
--
GPG Instructions: http://www.dirac.org/linux/gpg
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D