1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-08-14 14:09:35 +02:00

maint: adjust lseek_copy to handle non zero offsets

* src/copy-file-data.c (lseek_copy): hole_start is initialized
only when ext_start == ipos.
(infer_scantype): Update the hole_start initialization to
the more logically correct POS, even though that init
is only needed to suppress a -Wmaybe-uninitialized warning.
Note gcc 15.2 at least doesn't seem to need that suppression.
This commit is contained in:
Pádraig Brady
2025-11-03 22:42:22 +00:00
parent d36d0f28a4
commit 4c0cf3864a
+2 -2
View File
@@ -338,7 +338,7 @@ lseek_copy (int src_fd, int dest_fd, char **abuf, idx_t buf_size,
for (off_t ext_start = scan_inference->ext_start;
0 <= ext_start && ext_start < max_ipos; )
{
off_t ext_end = (ext_start == 0
off_t ext_end = (ext_start == ipos
? scan_inference->hole_start
: lseek (src_fd, ext_start, SEEK_HOLE));
if (0 <= ext_end)
@@ -497,7 +497,7 @@ infer_scantype (int fd, struct stat const *sb, off_t pos,
}
else if (pos < scan_inference->ext_start || errno == ENXIO)
{
scan_inference->hole_start = 0; /* Pacify -Wmaybe-uninitialized. */
scan_inference->hole_start = pos; /* Pacify -Wmaybe-uninitialized. */
return LSEEK_SCANTYPE;
}
else if (errno != EINVAL && !is_ENOTSUP (errno))