OOPS, forgot to CC list. re-sending While working on xfstest xfs/348 and playing Russian roulette on inode mode on-disk values I hit this Assertion on readdir of malformed dir inode: XFS: Assertion failed: rval == 0 || args->dp->i_d.di_size == args->geo->blksize, file: /home/amir/build/src/linux/fs/xfs/libxfs/xfs_dir2.c, line: 635 Not sure how robust xfs is nowadays to fuzzing of on-disk values, but judging by the amount of fuzz testing that Darrick has written, I guess that robustness for malformed on-disk values is a goal. The victim of the readdir assertion is either a non empty file or a symlink whose mode was modified to type dir. I did not check which one triggered the assertion in attached logs. Attached logs from 3 runs on kernel 4.9.0 and latest master (pre-4.10-rc1) and matching kernel configs (with XFS_DEBUG=y). 2 logs are with crc=1, reflink=1 mkfs opts and one log with crc=0, ftype=0. To reproduce, get my posted xfs/348 test and comment out the line: safety="-d" # NOTE that ls DOES blow up with kernel 4.9 on malformed # directory - remove the safety pin to explode Cheers, Amir.
Attachment:
xfs-assert-xfstest-348.tgz
Description: GNU Zip compressed data