delorie.com/archives/browse.cgi | search |
X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
From: | "Tim Van Holder" <tim DOT van DOT holder AT pandora DOT be> |
To: | <djgpp-workers AT delorie DOT com>, |
"'Richard Dawe'" <rich AT phekda DOT freeserve DOT co DOT uk> | |
Subject: | Re: Memory leaks fixes |
Date: | Sat, 5 Jan 2002 18:31:01 +0100 |
Message-ID: | <000001c1960e$bf2c61f0$cef8e0d5@zastaixp> |
MIME-Version: | 1.0 |
X-Priority: | 3 (Normal) |
X-MSMail-Priority: | Normal |
X-Mailer: | Microsoft Outlook, Build 10.0.3416 |
In-reply-to: | <6551-Sat05Jan2002163435+0200-eliz@is.elta.co.il> |
Importance: | Normal |
X-MimeOLE: | Produced By Microsoft MimeOLE V6.00.2600.0000 |
Reply-To: | djgpp-workers AT delorie DOT com |
Errors-To: | nobody AT delorie DOT com |
X-Mailing-List: | djgpp-workers AT delorie DOT com |
X-Unsubscribes-To: | listserv AT delorie DOT com |
> > - if (fsext_list == 0) > > + temp = (__FSEXT_entry *)realloc(fsext_list, num_fds * > sizeof(__FSEXT_entry)); > > + if (temp == 0) > > + { > > Why do you only call realloc if fsext_list is NULL? AFAICS, it He doesn't; the if (fsext_list) is from the old file (hence the '-'). > > *d = '\0'; > > - /* Free unused space. */ > > - cmd->command = (char *) realloc (cmd->command, cmd_len + 1); > > + /* Free unused space, if we can. */ > > + d = (char *) realloc (cmd->command, cmd_len + 1); > > + if (d) > > + cmd->command = d; > > No, please don't! This code compacts the string, and thus the result > will always be _smaller_ than the original. So if realloc fails here, > the right thing to do would be to return the original string. Which is what happens - instead of losing the original pointer (which is what the old code did), it now puts in the pointer returned by realloc only if it wasn't NULL; otherwise cmd->command remains unchanged.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |