alloc buffer for getcwd

svn: r5355
This commit is contained in:
Matthew Flatt 2007-01-15 07:05:31 +00:00
parent 32ec113ed1
commit 0a36385258

View File

@ -140,6 +140,8 @@ static char *copy_string(char *s1)
int l1; int l1;
char *s; char *s;
if (!s1) return NULL;
l1 = strlen(s1); l1 = strlen(s1);
s = (char *)malloc(l1 + 1); s = (char *)malloc(l1 + 1);
@ -199,6 +201,9 @@ char *absolutize(char *p, char *d)
{ {
int l1; int l1;
if (!p[0])
return p;
if (p[0] == '/') if (p[0] == '/')
return p; return p;
@ -235,7 +240,10 @@ int main(int argc, char **argv)
/* Absolute path */ /* Absolute path */
} else if (has_slash(me)) { } else if (has_slash(me)) {
/* Relative path with a directory: */ /* Relative path with a directory: */
me = path_append(getcwd(NULL, 0), me); char *buf;
long buflen = 4096;
buf = (char *)malloc(buflen);
me = path_append(getcwd(buf, buflen), me);
} else { } else {
/* We have to find the executable by searching PATH: */ /* We have to find the executable by searching PATH: */
char *path = copy_string(getenv("PATH")), *p, *m; char *path = copy_string(getenv("PATH")), *p, *m;