* Fix some memory and file descriptor leaks.

This commit is contained in:
Paul Smith 1999-07-16 22:28:46 +00:00
parent a3cf773e29
commit 826ab14b26
4 changed files with 19 additions and 2 deletions

5
.purify Normal file
View file

@ -0,0 +1,5 @@
suppress plk malloc; setvbuf "libc*"; main "main.c"
suppress mlk malloc; xmalloc "misc.c"; decode_env_switches "main.c"
suppress plk malloc; xmalloc "misc.c"; decode_env_switches "main.c"
suppress mlk malloc; xmalloc "misc.c"; concat "misc.c"; decode_env_switches "main.c"
suppress plk malloc; xmalloc "misc.c"; concat "misc.c"; decode_env_switches "main.c"

View file

@ -1,3 +1,14 @@
1999-07-16 Paul D. Smith <psmith@gnu.org>
* .purify: New file: suppress some known-OK Purify messages.
* read.c (read_makefile): Remember to free the commands buffer if
we can't find a makefile.
* job.c (start_job_command): Broken #ifdef test: look for F_SETFD,
not FD_SETFD. Close-on-exec isn't getting set on the bad_stdin
file descriptor and it's leaking :-/.
1999-07-15 Paul D. Smith <psmith@gnu.org>
* read.c (read_makefile): Fix some potential memory stomps parsing

4
job.c
View file

@ -897,7 +897,7 @@ start_job_command (child)
/* Set the descriptor to close on exec, so it does not litter any
child's descriptor table. When it is dup2'd onto descriptor 0,
that descriptor will not close on exec. */
#ifdef FD_SETFD
#ifdef F_SETFD
#ifndef FD_CLOEXEC
#define FD_CLOEXEC 1
#endif
@ -980,7 +980,7 @@ start_job_command (child)
/* We are the child side. */
unblock_sigs ();
child_execute_job (child->good_stdin ? 0 : bad_stdin, 1,
argv, child->environment);
argv, child->environment);
}
else if (child->pid < 0)
{

1
read.c
View file

@ -396,6 +396,7 @@ read_makefile (filename, flags)
attempt, rather from FILENAME itself. Restore it in case the
caller wants to use it in a message. */
errno = makefile_errno;
free (commands);
return 0;
}