diff --git a/ChangeLog b/ChangeLog index 999209d2f6d77d3b34e1dbf274a8ac2b00cfdac0..5b8876c557527fa75bbf32e5a5218d52591a18e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,9 @@ CVS Code - - Fix incorrect cursor location when cutting long lines (David Benbennick). - files.c: + do_browser() + - Fix incorrect path check for check_operating_dir() + (David Benbennick). open_file() - Fix FD leak with file load error (David Benbennick). save_history() diff --git a/files.c b/files.c index e6225a4113a39a805fe6ca4cc1cc9f2f83ab9d14..b967d2584281f9efeff939c276c0b519074a384f 100644 --- a/files.c +++ b/files.c @@ -2613,14 +2613,12 @@ char *do_browser(const char *inpath) break; } - path = mallocstrcpy(path, filelist[selected]); - #ifndef DISABLE_OPERATINGDIR /* Note: The case of the user's being completely outside the operating directory is handled elsewhere, before this point */ if (operating_dir != NULL) { - if (check_operating_dir(path, 0)) { + if (check_operating_dir(filelist[selected], 0)) { statusbar(_("Can't visit parent in restricted mode")); beep(); break; @@ -2628,6 +2626,8 @@ char *do_browser(const char *inpath) } #endif + path = mallocstrcpy(path, filelist[selected]); + /* SPK for '.' path, get the current path via getcwd */ if (!strcmp(path, "./..")) { free(path);