]> git.wh0rd.org Git - nano.git/commitdiff
Plugging a memory leak by not copying a string twice.
authorBenno Schulenberg <bensberg@justemail.net>
Thu, 25 Feb 2016 13:52:54 +0000 (13:52 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Thu, 25 Feb 2016 13:52:54 +0000 (13:52 +0000)
This fixes Savannah bug #47206.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5676 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/browser.c

index 0fea0a7e737b132326ea968344119c6916de79be..134220563baa76910d696574d1102b22f6f57dc0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-02-25  Benno Schulenberg  <bensberg@justemail.net>
+       * src/browser.c (do_browser): Plug a memory leak by not copying
+       a string twice.  This fixes Savannah bug #47206.
+
 2016-02-23  Benno Schulenberg  <bensberg@justemail.net>
        * src/prompt.c (do_statusbar_output, do_statusbar_delete):
        Rename a variable, for contrast and correctness.
index 857bec5dc61a37da8719a00dbf03754d5e43c4eb..5232733c72c1f03d8f5a637e8f7ea4dac6fdcc2f 100644 (file)
@@ -322,7 +322,7 @@ char *do_browser(char *path, DIR *dir)
                /* We've successfully opened the parent directory,
                 * save the current directory in prev_dir, so that
                 * we can easily return to it by hitting Enter. */
-               prev_dir = mallocstrcpy(NULL, striponedir(filelist[selected]));
+               prev_dir = striponedir(filelist[selected]);
 
            dir = opendir(filelist[selected]);
            if (dir == NULL) {
@@ -330,6 +330,8 @@ char *do_browser(char *path, DIR *dir)
                 * Complain. */
                statusbar(_("Error reading %s: %s"),
                                filelist[selected], strerror(errno));
+               free(prev_dir);
+               prev_dir = NULL;
                beep();
                continue;
            }