]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Check HAVE_COPY_FILE_RANGE before calling copy_file_range
authorTomas Vondra <tomas.vondra@postgresql.org>
Fri, 5 Apr 2024 17:38:16 +0000 (19:38 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Fri, 5 Apr 2024 17:38:20 +0000 (19:38 +0200)
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.

src/bin/pg_combinebackup/reconstruct.c

index b059be8d0a60150b666c2209cf3ba251e2afcad1..15f62c18df84aeb1cb55fe435032830df05bf6a8 100644 (file)
@@ -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
                }
        }