diff --git a/ChangeLog b/ChangeLog index 6f6628c72a882afde4a8f309405d523dce15ca5f..df06329071c5a7689d2553c21d00ba1bb492d3c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ * src/text.c (add_undo, update_undo, do_undo, do_redo), src/nano.h: Store and retrieve the correct file size before and after an action. This fixes Savannah bug #45523. + * src/files.c (free_chararray): Allow the parameter to be NULL. + This fixes Savannah bug #46420. 2015-11-29 Benno Schulenberg <bensberg@justemail.net> * src/color.c (reset_multis): Evaluate correctly whether to reset diff --git a/src/browser.c b/src/browser.c index eb6119ac31a238a12118750c569e7e8cf2959444..25d24402faf6ee02c233ad8468d8ca5bde2972c7 100644 --- a/src/browser.c +++ b/src/browser.c @@ -460,8 +460,7 @@ void browser_init(const char *path, DIR *dir) rewinddir(dir); - if (filelist != NULL) - free_chararray(filelist, filelist_len); + free_chararray(filelist, filelist_len); filelist_len = i; diff --git a/src/files.c b/src/files.c index 220f978d4ca230dd55f21ad3b6bc17e99246d03c..4631cd2f06b5b0104963ca4987523626c57d194a 100644 --- a/src/files.c +++ b/src/files.c @@ -2553,7 +2553,8 @@ int diralphasort(const void *va, const void *vb) * elements. */ void free_chararray(char **array, size_t len) { - assert(array != NULL); + if (array == NULL) + return; for (; len > 0; len--) free(array[len - 1]);