Fixed memory leak in scheme_cwd: a temporary buffer was not freed
after entering the value in the scheme heap.
This commit is contained in:
parent
be8a63dbe8
commit
1521521116
|
@ -335,6 +335,7 @@ s48_value scheme_cwd()
|
||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
int size = scsh_path_max + 1; /* +1 for terminating nul byte... */
|
int size = scsh_path_max + 1; /* +1 for terminating nul byte... */
|
||||||
|
s48_value cwd = S48_UNSPECIFIC;
|
||||||
|
|
||||||
buf = Malloc(char,size);
|
buf = Malloc(char,size);
|
||||||
if(!buf) goto lose;
|
if(!buf) goto lose;
|
||||||
|
@ -347,8 +348,11 @@ s48_value scheme_cwd()
|
||||||
if( !nbuf ) goto lose;
|
if( !nbuf ) goto lose;
|
||||||
buf = nbuf;
|
buf = nbuf;
|
||||||
}
|
}
|
||||||
|
cwd = s48_enter_string(buf); /* win */
|
||||||
|
|
||||||
return s48_enter_string(buf); /* win */
|
Free(buf);
|
||||||
|
|
||||||
|
return cwd;
|
||||||
|
|
||||||
lose:
|
lose:
|
||||||
{int e = errno;
|
{int e = errno;
|
||||||
|
|
Loading…
Reference in New Issue