* 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> 1999-07-15 Paul D. Smith <psmith@gnu.org>
* read.c (read_makefile): Fix some potential memory stomps parsing * 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 /* 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, child's descriptor table. When it is dup2'd onto descriptor 0,
that descriptor will not close on exec. */ that descriptor will not close on exec. */
#ifdef FD_SETFD #ifdef F_SETFD
#ifndef FD_CLOEXEC #ifndef FD_CLOEXEC
#define FD_CLOEXEC 1 #define FD_CLOEXEC 1
#endif #endif
@ -980,7 +980,7 @@ start_job_command (child)
/* We are the child side. */ /* We are the child side. */
unblock_sigs (); unblock_sigs ();
child_execute_job (child->good_stdin ? 0 : bad_stdin, 1, child_execute_job (child->good_stdin ? 0 : bad_stdin, 1,
argv, child->environment); argv, child->environment);
} }
else if (child->pid < 0) 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 attempt, rather from FILENAME itself. Restore it in case the
caller wants to use it in a message. */ caller wants to use it in a message. */
errno = makefile_errno; errno = makefile_errno;
free (commands);
return 0; return 0;
} }