[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
execl, execlp memory leak
From: |
Kevin Ryde |
Subject: |
execl, execlp memory leak |
Date: |
Wed, 25 Feb 2004 08:40:31 +1000 |
User-agent: |
Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (gnu/linux) |
* posix.c (scm_execl, scm_execlp): Avoid memory leak under error throw.
This can be seen with for instance
(while #t
(false-if-exception
(execl "nosuchprog")))
This would be for the 1.6 branch too.
--- posix.c.~1.125.~ 2004-02-22 07:54:37.000000000 +1000
+++ posix.c 2004-02-24 19:37:00.000000000 +1000
@@ -909,9 +909,13 @@
#define FUNC_NAME s_scm_execl
{
char **execargv;
+ int save_errno;
SCM_VALIDATE_STRING (1, filename);
execargv = allocate_string_pointers (args);
execv (SCM_STRING_CHARS (filename), execargv);
+ save_errno = errno;
+ free (execargv);
+ errno = save_errno;
SCM_SYSERROR;
/* not reached. */
return SCM_BOOL_F;
@@ -929,9 +933,13 @@
#define FUNC_NAME s_scm_execlp
{
char **execargv;
+ int save_errno;
SCM_VALIDATE_STRING (1, filename);
execargv = allocate_string_pointers (args);
execvp (SCM_STRING_CHARS (filename), execargv);
+ save_errno = errno;
+ free (execargv);
+ errno = save_errno;
SCM_SYSERROR;
/* not reached. */
return SCM_BOOL_F;
- execl, execlp memory leak,
Kevin Ryde <=