After closedir() dirent->d_name is not valid anymore. As there alerady are a
few places relying on the limited lifetime of pg_waldump, do so here as well,
and just pg_strdup() the string.
The bug was introduced in
fc49e24fa69a.
Found by UBSan, run locally.
Backpatch: 11-, like
fc49e24fa69 itself.
if (IsXLogFileName(xlde->d_name))
{
fd = open_file_in_directory(directory, xlde->d_name);
- fname = xlde->d_name;
+ fname = pg_strdup(xlde->d_name);
break;
}
}