From: Daniel Gustafsson Date: Tue, 2 May 2023 11:15:29 +0000 (+0200) Subject: Fix overridden callbacks in pg_rewind. X-Git-Url: http://git.postgresql.org/gitweb/-?a=commitdiff_plain;h=08237056f84e3a9ed75e8a698428c669f4d35db4;p=users%2Frhaas%2Fpostgres.git 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 --- 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 *