From ed1904a75d760730983d81fa6949495b0fa531de Mon Sep 17 00:00:00 2001 From: Andrea Guzzo Date: Tue, 31 Mar 2015 12:52:08 +0200 Subject: [PATCH] safety belt : scan_directory() can return without setting arr to a valid value --- mongoose.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mongoose.c b/mongoose.c index 43e818a1..5a59aa03 100644 --- a/mongoose.c +++ b/mongoose.c @@ -3639,12 +3639,14 @@ static void send_directory_listing(struct connection *conn, const char *dir) { sort_direction, sort_direction, sort_direction); num_entries = scan_directory(conn, dir, &arr); - qsort(arr, num_entries, sizeof(arr[0]), compare_dir_entries); - for (i = 0; i < num_entries; i++) { - print_dir_entry(&arr[i]); - NS_FREE(arr[i].file_name); + if (arr) { + qsort(arr, num_entries, sizeof(arr[0]), compare_dir_entries); + for (i = 0; i < num_entries; i++) { + print_dir_entry(&arr[i]); + NS_FREE(arr[i].file_name); + } + NS_FREE(arr); } - NS_FREE(arr); write_terminating_chunk(conn); close_local_endpoint(conn);