mirror of
https://github.com/opnsense/src.git
synced 2026-02-19 02:30:08 -05:00
the unwary if the code were called in slightly different ways. 1) In ufs_bmaparray() the code for calculating 'runb' will stop one block short of the first entry in an indirect block. i.e. if an indirect block contains N block numbers b[0]..b[N-1] then the code will never check if b[0] and b[1] are sequential. For reference, compare with the equivalent code that deals with direct blocks. 2) In ufs_lookup() there is an off-by-one error in the test that checks if dp->i_diroff is outside the range of the the current directory size. This is completely harmless, since the following while-loop condition 'dp->i_offset < endsearch' is never met, so the code immediately does a second pass starting at dp->i_offset = 0. 3) Again in ufs_lookup(), the condition in a sanity check is wrong for directories that are longer than one block. This bug means that the sanity check is only effective for small directories. Submitted by: Ian Dowse <iedowse@maths.tcd.ie> |
||
|---|---|---|
| .. | ||
| COPYRIGHT.INFO | ||
| ext2_alloc.c | ||
| ext2_balloc.c | ||
| ext2_bmap.c | ||
| ext2_extern.h | ||
| ext2_fs.h | ||
| ext2_fs_sb.h | ||
| ext2_ihash.c | ||
| ext2_inode.c | ||
| ext2_inode_cnv.c | ||
| ext2_linux_balloc.c | ||
| ext2_linux_ialloc.c | ||
| ext2_lookup.c | ||
| ext2_mount.h | ||
| ext2_readwrite.c | ||
| ext2_subr.c | ||
| ext2_vfsops.c | ||
| ext2_vnops.c | ||
| fs.h | ||
| i386-bitops.h | ||
| inode.h | ||