diff --git a/common/ui/file.cpp b/common/ui/file.cpp index 14bb7dc25..a296dbd94 100644 --- a/common/ui/file.cpp +++ b/common/ui/file.cpp @@ -68,10 +68,11 @@ static char **file_getdirlist(int *NumDirs, const char *dir) { // Put the 'go to parent directory' sequence '..' first (*NumDirs)++; - list = (char **)realloc(list, sizeof(char *)*(*NumDirs + 1)); - list[*NumDirs] = NULL; // terminate - for (i = list + *NumDirs - 1; i != list; i--) - *i = i[-1]; + auto r = reinterpret_cast(realloc(list, sizeof(char *)*(*NumDirs + 1))); + if (!r) + return list; + list = r; + std::move_backward(list, list + *NumDirs, list + *NumDirs + 1); list[0] = d_strdup(".."); }