From b698c35f4bee4337e73602fcb1de3d603dd778fc Mon Sep 17 00:00:00 2001
From: Chris Allegretta <chrisa@asty.org>
Date: Sun, 26 Jan 2003 22:05:07 +0000
Subject: [PATCH] - files.c:do_browser() - Fix incorrect path check for
 check_operating_dir() (David Benbennick)

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1401 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog | 3 +++
 files.c   | 6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 999209d2..5b8876c5 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 e6225a41..b967d258 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);
-- 
GitLab