diff --git a/src/backend/access/transam/xlogfuncs.c b/src/backend/access/transam/xlogfuncs.c index d94809ad7ee23d4017ba6d2f475f1f5d39875a2a..adf0b16e56a052db68196d33fc7236e7bdbf7218 100644 --- a/src/backend/access/transam/xlogfuncs.c +++ b/src/backend/access/transam/xlogfuncs.c @@ -611,14 +611,18 @@ pg_backup_start_time(PG_FUNCTION_ARGS) break; } - /* - * Close the backup label file. - */ - if (ferror(lfp) || FreeFile(lfp)) + /* Check for a read error. */ + if (ferror(lfp)) ereport(ERROR, (errcode_for_file_access(), errmsg("could not read file \"%s\": %m", BACKUP_LABEL_FILE))); + /* Close the backup label file. */ + if (FreeFile(lfp)) + ereport(ERROR, + (errcode_for_file_access(), + errmsg("could not close file \"%s\": %m", BACKUP_LABEL_FILE))); + if (strlen(backup_start_time) == 0) ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),