Steffen Prohaska [off-list ref] writes:
xsize_t() checks if an off_t argument can be safely converted to
a size_t return value. If the check is executed too early, it could
fail for large files on 32-bit architectures even if the size_t code
path is not taken. Other paths might be able to handle the large file.
Specifically, index_stream_convert_blob() is able to handle a large file
if a filter is configured that returns a small result.
Signed-off-by: Steffen Prohaska <redacted>
---
This patch should be applied on top of sp/stream-clean-filter.
index_stream() might internally also be able to handle large files to
some extent. But it uses size_t for its third argument, and we must
already die() when calling it. It might be a good idea to convert its
interface to use off_t and push the size checks further down the stack.
Yes, if we want to futz in this area, I think that would be the
right approach.