aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gustafsson <dgustafsson@postgresql.org>2023-05-02 13:15:29 +0200
committerDaniel Gustafsson <dgustafsson@postgresql.org>2023-05-02 13:15:29 +0200
commit08237056f84e3a9ed75e8a698428c669f4d35db4 (patch)
treede2553f4f5e154f0011d32e678d6c1519ca3e211 /src
parente0bb5d0c5bcada63dc9b8a1a72a344a07bf930ce (diff)
downloadpostgresql-08237056f84e3a9ed75e8a698428c669f4d35db4.tar.gz
postgresql-08237056f84e3a9ed75e8a698428c669f4d35db4.zip
Fix overridden callbacks in pg_rewind.
The <source>_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 <zhjwpku@gmail.com> Reviewed-by: Richard Guo <guofenglinux@gmail.com> Discussion: https://postgr.es/m/CAEG8a3Jdwgh+PZr2zh1=t8apA4Yz8tKq+uubPqoCt14nvWKHEw@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_rewind/libpq_source.c2
-rw-r--r--src/bin/pg_rewind/local_source.c2
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 5f486b2a616..0d8e9ee2d1a 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 4e2a1376c69..9bd43cba748 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 *