Commit 706f0142 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

Avoiding the loss a buffer when getcwd() fails.

This fixes Savannah bug #47129 reported by Mike Frysinger.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5647 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 5 additions and 5 deletions
+5 -5
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* src/files.c (read_file): Free not just the struct but also the * src/files.c (read_file): Free not just the struct but also the
data it contains, and also when it is the first and only line. data it contains, and also when it is the first and only line.
This fixes Savannah bug #47153 reported by Mike Frysinger. This fixes Savannah bug #47153 reported by Mike Frysinger.
* src/files.c (get_full_path): Avoid losing a buffer when getcwd()
fails. This fixes Savannah bug #47129 reported by Mike Frysinger.
2016-02-14 Benno Schulenberg <bensberg@justemail.net> 2016-02-14 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Make iterating through replacement * src/search.c (do_replace_loop): Make iterating through replacement
......
...@@ -1413,14 +1413,13 @@ char *get_full_path(const char *origpath) ...@@ -1413,14 +1413,13 @@ char *get_full_path(const char *origpath)
/* Get the current directory. If it doesn't exist, back up and try /* Get the current directory. If it doesn't exist, back up and try
* again until we get a directory that does, and use that as the * again until we get a directory that does, and use that as the
* current directory. */ * current directory. */
d_here = charalloc(PATH_MAX + 1); d_here = getcwd(NULL, PATH_MAX + 1);
d_here = getcwd(d_here, PATH_MAX + 1);
while (d_here == NULL) { while (d_here == NULL) {
if (chdir("..") == -1) if (chdir("..") == -1)
break; break;
d_here = getcwd(d_here, PATH_MAX + 1); d_here = getcwd(NULL, PATH_MAX + 1);
} }
/* If we succeeded, canonicalize it in d_here. */ /* If we succeeded, canonicalize it in d_here. */
...@@ -1481,8 +1480,7 @@ char *get_full_path(const char *origpath) ...@@ -1481,8 +1480,7 @@ char *get_full_path(const char *origpath)
free(d_there); free(d_there);
/* Get the full path. */ /* Get the full path. */
d_there = charalloc(PATH_MAX + 1); d_there = getcwd(NULL, PATH_MAX + 1);
d_there = getcwd(d_there, PATH_MAX + 1);
/* If we succeeded, canonicalize it in d_there. */ /* If we succeeded, canonicalize it in d_there. */
if (d_there != NULL) { if (d_there != NULL) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment