Commit c9ae7f70 authored by Michael Paquier's avatar Michael Paquier

Fix cross-version compatibility checks of pg_verify_checksums

pg_verify_checksums performs a read of the control file, and the data it
fetches should be from a data folder compatible with the major version
of Postgres the binary has been compiled with, but we never actually
checked that compatibility.

Reported-by: Sergei Kornilov
Author: Michael Paquier
Reviewed-by: Sergei Kornilov
Discussion: https://postgr.es/m/155231347133.16480.11453587097036807558.pgcf@coridan.postgresql.org
Backpatch-through: 11
parent 3f342839
......@@ -316,6 +316,13 @@ main(int argc, char *argv[])
exit(1);
}
if (ControlFile->pg_control_version != PG_CONTROL_VERSION)
{
fprintf(stderr, _("%s: cluster is not compatible with this version of pg_verify_checksums\n"),
progname);
exit(1);
}
if (ControlFile->state != DB_SHUTDOWNED &&
ControlFile->state != DB_SHUTDOWNED_IN_RECOVERY)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment