diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2022-06-06 11:26:57 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2022-06-06 11:26:57 -0400 |
commit | 32a85ee46b034be7b8bf8f31b24cf6fe3684fe7f (patch) | |
tree | 6790053d244d4297fb380ddfad1842e8ae377b11 /src | |
parent | a5dbca460ace7e89a607d43e206973efaee0ed19 (diff) | |
download | postgresql-32a85ee46b034be7b8bf8f31b24cf6fe3684fe7f.tar.gz postgresql-32a85ee46b034be7b8bf8f31b24cf6fe3684fe7f.zip |
Don't fail on libpq-generated error reports in pg_amcheck.
An error PGresult generated by libpq itself, such as a report of
connection loss, won't have broken-down error fields.
should_processing_continue() blithely assumed that
PG_DIAG_SEVERITY_NONLOCALIZED would always be present, and would
dump core if it wasn't.
Per grepping to see if 6d157e7cb's mistake was repeated elsewhere.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/pg_amcheck/pg_amcheck.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/bin/pg_amcheck/pg_amcheck.c b/src/bin/pg_amcheck/pg_amcheck.c index b4ce47a2e95..2c86ddae21f 100644 --- a/src/bin/pg_amcheck/pg_amcheck.c +++ b/src/bin/pg_amcheck/pg_amcheck.c @@ -958,6 +958,8 @@ should_processing_continue(PGresult *res) /* This is expected but requires closer scrutiny */ case PGRES_FATAL_ERROR: severity = PQresultErrorField(res, PG_DIAG_SEVERITY_NONLOCALIZED); + if (severity == NULL) + return false; /* libpq failure, probably lost connection */ if (strcmp(severity, "FATAL") == 0) return false; if (strcmp(severity, "PANIC") == 0) |