+++ /dev/null
-From bd528f923482223649aa84be7d131e69356149da Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
-Date: Sun, 4 Jan 2026 12:45:46 +0000
-Subject: [PATCH] copy: fix possible infinite loop with SEEK_HOLE
-
-Commit v9.8-95-g4c0cf3864 intended to initialize
-ext_start to src_pos, as was described at:
-https://lists.gnu.org/r/coreutils/2025-11/msg00035.html
-However ipos was inadvertently used, which is only
-valid the first time through the loop.
-
-* src/copy-file-data.c (lseek_copy): Use scan_inference->hole_start
-only with the initial offset passed to lseek_copy().
-Reported at https://github.com/coreutils/coreutils/issues/159
-
---- a/src/copy-file-data.c
-+++ b/src/copy-file-data.c
-@@ -338,7 +338,7 @@ lseek_copy (int src_fd, int dest_fd, cha
- for (off_t ext_start = scan_inference->ext_start;
- 0 <= ext_start && ext_start < max_ipos; )
- {
-- off_t ext_end = (ext_start == ipos
-+ off_t ext_end = (ext_start == src_pos
- ? scan_inference->hole_start
- : lseek (src_fd, ext_start, SEEK_HOLE));
- if (0 <= ext_end)
EXTRA_DIST = \
.mailmap \
-@@ -209,6 +209,3 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib
+@@ -212,6 +212,3 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib
include $(top_srcdir)/gl/local.mk
include $(top_srcdir)/lib/local.mk
include $(top_srcdir)/src/local.mk
-include $(top_srcdir)/tests/local.mk
--- a/Makefile.in
+++ b/Makefile.in
-@@ -4701,11 +4701,7 @@ RECURSIVE_TARGETS = all-recursive check-
+@@ -4720,11 +4720,7 @@ RECURSIVE_TARGETS = all-recursive check-
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-@@ -4960,11 +4956,10 @@ am__DIST_COMMON = $(doc_coreutils_TEXINF
+@@ -4976,11 +4972,10 @@ am__DIST_COMMON = $(doc_coreutils_TEXINF
$(top_srcdir)/build-aux/missing \
$(top_srcdir)/build-aux/test-driver \
$(top_srcdir)/build-aux/texinfo.tex \
$(top_srcdir)/tests/local.mk ABOUT-NLS AUTHORS COPYING \
ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \
build-aux/config.guess build-aux/config.rpath \
-@@ -5085,7 +5080,7 @@ ERRNO_H = @ERRNO_H@
+@@ -5101,7 +5096,7 @@ ERRNO_H = @ERRNO_H@
ETAGS = @ETAGS@
EUIDACCESS_LIBGEN = @EUIDACCESS_LIBGEN@
EXEEXT = @EXEEXT@
FDATASYNC_LIB = @FDATASYNC_LIB@
FILE_HAS_ACL_LIB = @FILE_HAS_ACL_LIB@
FLOAT_H = @FLOAT_H@
-@@ -7185,7 +7180,7 @@ localedir_c_make = @localedir_c_make@
+@@ -7220,7 +7215,7 @@ localedir_c_make = @localedir_c_make@
localstatedir = @localstatedir@
localstatedir_c = @localstatedir_c@
localstatedir_c_make = @localstatedir_c_make@
mandir = @mandir@
mandir_c = @mandir_c@
mandir_c_make = @mandir_c_make@
-@@ -7234,7 +7229,7 @@ top_build_prefix = @top_build_prefix@
+@@ -7269,7 +7264,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ALL_RECURSIVE_TARGETS = distcheck-hook check-root
EXTRA_DIST = .mailmap .prev-version .version .vg-suppressions \
README-install THANKS.in THANKS-to-translators THANKStt.in \
bootstrap bootstrap.conf build-aux/gen-lists-of-programs.sh \
-@@ -9633,7 +9628,7 @@ all: $(BUILT_SOURCES)
- .SUFFIXES: .1 .c .dvi .log .o .obj .pl .pl$(EXEEXT) .ps .sh .sh$(EXEEXT) .trs .x .xpl .xpl$(EXEEXT) .y
+@@ -9736,7 +9731,7 @@ all: $(BUILT_SOURCES)
+ .SUFFIXES: .1 .c .dvi .log .o .obj .pl .pl$(EXEEXT) .ps .sh .sh$(EXEEXT) .trs .x .y
am--refresh: Makefile
@:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gl/local.mk $(top_srcdir)/lib/local.mk $(srcdir)/lib/gnulib.mk $(top_srcdir)/src/local.mk $(srcdir)/src/cu-progs.mk $(top_srcdir)/src/single-binary.mk $(top_srcdir)/doc/local.mk $(top_srcdir)/man/local.mk $(top_srcdir)/tests/local.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
-@@ -9655,7 +9650,7 @@ Makefile: $(srcdir)/Makefile.in $(top_bu
+@@ -9758,7 +9753,7 @@ Makefile: $(srcdir)/Makefile.in $(top_bu
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;