waldump: fix use-after-free in search_directory().
authorAndres Freund <andres@anarazel.de>
Wed, 23 Mar 2022 23:38:43 +0000 (16:38 -0700)
committerAndres Freund <andres@anarazel.de>
Mon, 28 Mar 2022 01:13:50 +0000 (18:13 -0700)
commit264d284929e0d5a419821f94f16f766b5497c87a
tree432315466ad07f9d7ce3e1104590758e69d5f10d
parentcc7401d5ca498a84d9b47fd2e01cebd8e830e558
waldump: fix use-after-free in search_directory().

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.
src/bin/pg_waldump/pg_waldump.c