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:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user