From 08237056f84e3a9ed75e8a698428c669f4d35db4 Mon Sep 17 00:00:00 2001 From: Daniel Gustafsson Date: Tue, 2 May 2023 13:15:29 +0200 Subject: [PATCH] Fix overridden callbacks in pg_rewind. The _traverse_files functions take a callback for processing files, but both the local and libpq source implementations called the function directly without using the callback argument. While there is no bug right now as the function called is the same as the callback, fix by calling the callback to reduce the risk of subtle bugs in the future. Author: Junwang Zhao Reviewed-by: Richard Guo Discussion: https://postgr.es/m/CAEG8a3Jdwgh+PZr2zh1=t8apA4Yz8tKq+uubPqoCt14nvWKHEw@mail.gmail.com --- src/bin/pg_rewind/libpq_source.c | 2 +- src/bin/pg_rewind/local_source.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/pg_rewind/libpq_source.c b/src/bin/pg_rewind/libpq_source.c index 5f486b2a61..0d8e9ee2d1 100644 --- a/src/bin/pg_rewind/libpq_source.c +++ b/src/bin/pg_rewind/libpq_source.c @@ -304,7 +304,7 @@ libpq_traverse_files(rewind_source *source, process_file_callback_t callback) else type = FILE_TYPE_REGULAR; - process_source_file(path, type, filesize, link_target); + callback(path, type, filesize, link_target); } PQclear(res); } diff --git a/src/bin/pg_rewind/local_source.c b/src/bin/pg_rewind/local_source.c index 4e2a1376c6..9bd43cba74 100644 --- a/src/bin/pg_rewind/local_source.c +++ b/src/bin/pg_rewind/local_source.c @@ -59,7 +59,7 @@ init_local_source(const char *datadir) static void local_traverse_files(rewind_source *source, process_file_callback_t callback) { - traverse_datadir(((local_source *) source)->datadir, &process_source_file); + traverse_datadir(((local_source *) source)->datadir, callback); } static char *