Date: Wed, 12 Mar 1997 10:58:29 -0700 (MST) From: Joel Maslak <jmaslak@blackfire.com> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/2964: malloc() returns non-null when it should not Message-ID: <199703121758.KAA21827@blackfire.com> Resent-Message-ID: <199703121800.KAA29152@freefall.freebsd.org>
index | next in thread | raw e-mail
>Number: 2964
>Category: kern
>Synopsis: malloc() returns non-null when it should not
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Mar 12 10:00:01 PST 1997
>Last-Modified:
>Originator: Joel Maslak
>Organization:
None
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
3.0-CURRENT from December 1996, Pentium, 32 MB RAM, 96 MB swap
Ulimit set to 64 MB data size.
>Description:
I'm assuming this is a kernel problem, although it may be a gnu
problem.
If malloc is called as follows:
malloc((size_t) 0xffffffff)
it returns a non-null pointer. Obviously, free objects to
freeing this storage, with a:
Malloc warning: free():junk pointer, too high to make sense
Thus, something is definately broke here. The pointer allocated
in this case has a value of 0x4000.
>How-To-Repeat:
Compile (with GCC) and run:
#include <stdlib.h>
#include <stdio.h>
int main(void) {
void * p;
p = malloc((size_t) 0xffffffff);
if (p != NULL)
printf("KERNEL BUG! %p\n", p);
return 0;
}
Other values to try:
0xffffb001 -> 0xfffff000 (Causes a segmentation fault,
inside malloc())
0xfffff001 -> 0xffffffff (non-null return value)
>Fix:
Don't use malloc. :)
>Audit-Trail:
>Unformatted:
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703121758.KAA21827>
