Index: source/third_party/mongoose/mongoose.cpp =================================================================== --- source/third_party/mongoose/mongoose.cpp +++ source/third_party/mongoose/mongoose.cpp @@ -2454,16 +2454,18 @@ static void dir_scan_callback(struct de *de, void *data) { struct dir_scan_data *dsd = (struct dir_scan_data *) data; + struct de *reallocated_memory = nullptr; if (dsd->entries == NULL || dsd->num_entries >= dsd->arr_size) { dsd->arr_size *= 2; - dsd->entries = (struct de *) realloc(dsd->entries, dsd->arr_size * - sizeof(dsd->entries[0])); + struct de *reallocated_memory = (struct de *) realloc(dsd->entries, dsd->arr_size * sizeof(dsd->entries[0])); } - if (dsd->entries == NULL) { + if (NULL == reallocated_memory) { // TODO(lsm): propagate an error to the caller dsd->num_entries = 0; } else { + dsd->entries = (struct de *) realloc(dsd->entries, dsd->arr_size * + sizeof(dsd->entries[0])); dsd->entries[dsd->num_entries].file_name = mg_strdup(de->file_name); dsd->entries[dsd->num_entries].st = de->st; dsd->entries[dsd->num_entries].conn = de->conn;