Messages in this thread Patch in this message | | | Date | Fri, 2 Jul 2021 10:34:23 +0100 | From | Christoph Hellwig <> | Subject | Re: [PATCH -next 1/1] iomap: Fix a false positive of UBSAN in iomap_seek_data() |
| |
We might as well just kill off the length variable while we're at it:
diff --git a/fs/iomap/seek.c b/fs/iomap/seek.c index dab1b02eba5b7f..942e354e9e13e6 100644 --- a/fs/iomap/seek.c +++ b/fs/iomap/seek.c @@ -35,23 +35,21 @@ loff_t iomap_seek_hole(struct inode *inode, loff_t offset, const struct iomap_ops *ops) { loff_t size = i_size_read(inode); - loff_t length = size - offset; loff_t ret; /* Nothing to be found before or beyond the end of the file. */ if (offset < 0 || offset >= size) return -ENXIO; - while (length > 0) { - ret = iomap_apply(inode, offset, length, IOMAP_REPORT, ops, - &offset, iomap_seek_hole_actor); + while (offset < size) { + ret = iomap_apply(inode, offset, size - offset, IOMAP_REPORT, + ops, &offset, iomap_seek_hole_actor); if (ret < 0) return ret; if (ret == 0) break; offset += ret; - length -= ret; } return offset;
| |