diff --git a/src/browser.c b/src/browser.c index 01e8f42faf5ec32fdf93e40d0b7bb49a03424281..47cce33cb75c3f1f4311b609ba885a97c1ecc8ca 100644 --- a/src/browser.c +++ b/src/browser.c @@ -380,12 +380,13 @@ char *do_browse_from(const char *inpath) path = mallocstrassn(path, striponedir(path)); if (stat(path, &st) == -1 || !S_ISDIR(st.st_mode)) { - free(path); + char * currentdir = charalloc(PATH_MAX + 1); - path = charalloc(PATH_MAX + 1); - path = getcwd(path, PATH_MAX + 1); + free(path); + path = getcwd(currentdir, PATH_MAX + 1); if (path == NULL) { + free(currentdir); statusline(MILD, "The working directory has disappeared"); beep(); napms(1200);