[vox-tech] another glibc bug?

Tim Riley vox-tech@lists.lugod.org
Tue, 06 May 2003 10:15:44 -0700


Peter Jay Salzman wrote:

> 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.

Glibc 2.1 outputted:
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.

Glibc 2.1 outputted:
I requested 1 bytes.
p was allocated 0 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
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech