Commit 6c0e5e3f authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

Freeing not just the struct but also the data it contains,

and also when it is the first and only line.
This fixes Savannah bug #47153 reported by Mike Frysinger.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5646 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 9 additions and 4 deletions
+9 -4
2016-02-15 Benno Schulenberg <bensberg@justemail.net>
* 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.
This fixes Savannah bug #47153 reported by Mike Frysinger.
2016-02-14 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Make iterating through replacement
matches behave again like iterating through search matches: showing
......
......@@ -871,6 +871,7 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw
/* If the file we got doesn't end in a newline, tack its last
* line onto the beginning of the line at current. */
if (len > 0) {
filestruct *dropline = fileptr;
size_t current_len = strlen(openfile->current->data);
/* Adjust the current x-coordinate to compensate for the
......@@ -896,11 +897,10 @@ void read_file(FILE *f, int fd, const char *filename, bool undoable, bool checkw
if (fileptr == openfile->filebot)
openfile->filebot = openfile->current;
/* Move fileptr back one line and blow away the old fileptr,
* since its text has been saved. */
/* Step back one line, and blow away the unterminated line,
* since its text has been copied into current. */
fileptr = fileptr->prev;
if (fileptr != NULL)
free(fileptr->next);
delete_node(dropline);
}
/* Attach the line at current after the line at fileptr. */
......
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