From: Tomas Vondra Date: Fri, 5 Apr 2024 17:38:16 +0000 (+0200) Subject: Check HAVE_COPY_FILE_RANGE before calling copy_file_range X-Git-Tag: REL_17_BETA1~389 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=079d94ab3412fdeda637a24b17bde53c576b0007;p=postgresql.git Check HAVE_COPY_FILE_RANGE before calling copy_file_range Fix a mistake in ac8110155132 - write_reconstructed_file() called copy_file_range() without properly checking HAVE_COPY_FILE_RANGE. Reported by several macOS machines. Also reported by cfbot, but I missed that issue before commit. --- diff --git a/src/bin/pg_combinebackup/reconstruct.c b/src/bin/pg_combinebackup/reconstruct.c index b059be8d0a6..15f62c18df8 100644 --- a/src/bin/pg_combinebackup/reconstruct.c +++ b/src/bin/pg_combinebackup/reconstruct.c @@ -672,6 +672,7 @@ write_reconstructed_file(char *input_filename, } else /* use copy_file_range */ { +#if defined(HAVE_COPY_FILE_RANGE) /* copy_file_range modifies the offset, so use a local copy */ off_t off = offsetmap[i]; size_t nwritten = 0; @@ -706,6 +707,9 @@ write_reconstructed_file(char *input_filename, if (pg_checksum_update(checksum_ctx, buffer, BLCKSZ) < 0) pg_fatal("could not update checksum of file \"%s\"", output_filename); +#else + pg_fatal("copy_file_range not supported on this platform"); +#endif } }