On Sat, 3 Apr 2021, Christos Zoulas wrote:
In article <YGiV7Tup4jYZ9QdO%bec.de@localhost>, Joerg Sonnenberger <joerg%bec.de@localhost> wrote:The infinite loops are perfectly reasonable behavior for broken kernel input and found in other tools using the interface. IMO the kernel should always do a sanity cap for puffs/fuse here.Yes, but defensive programming is good.
For the block sizes the libarchive code itself hints at what should be done. In setup_suitable_read_buffer (line 645) the comment says: /* Some platform does not set a proper value to incr_xfer_size. */ 0 is also not a reasonable value. We can just return 512 if we get anything less that 512. For f_namemax, try a pathconf (which will fail on FUSE-ext2), then return MAXNAMLEN if it fails. -RVP