www.delorie.com/archives/browse.cgi | search |
From: | Daniel Barker <sokal AT holyrood DOT ed DOT ac DOT uk> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | malloc() problem, DJDEV 203 |
Date: | Mon, 2 Jul 2001 22:55:15 +0100 |
Organization: | Edinburgh University |
Lines: | 32 |
Message-ID: | <Pine.SOL.4.33.0107022250120.27631-100000@holyrood.ed.ac.uk> |
NNTP-Posting-Host: | holyrood.ed.ac.uk |
Mime-Version: | 1.0 |
X-Trace: | scotsman.ed.ac.uk 994110915 20037 129.215.16.14 (2 Jul 2001 21:55:15 GMT) |
X-Complaints-To: | usenet AT scotsman DOT ed DOT ac DOT uk |
NNTP-Posting-Date: | 2 Jul 2001 21:55:15 GMT |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Unless I have been staring at the screen too long, there is a bug in DJGPP malloc(). malloc() does not indicate failure when a very large allocation is attempted. I noticed this whilst checking a test I have written for my own malloc() wrapper function. malloc() does not indicate failure for a very large allocation. Here's a small example, tested with DJDEV 203 and gcc2952. c:/My\ Documents $ cat mallocbug.c /* mallocbug.c */ #include <stdio.h> #include <stdlib.h> int main(void) { char *p = malloc((size_t) -1); printf("NULL = %p\n", (void *) NULL); printf("p = %p\n", (void *) p); return 0; } c:/My\ Documents $ gcc -ansi -o mallocbug.exe mallocbug.c c:/My\ Documents $ ./mallocbug.exe NULL = 0 p = 8fae8 -- Daniel Barker.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |