xv6-riscv
xv6-riscv copied to clipboard
Fix bug where long directory names might not be null-terminated
On some versions of gcc, compiling mkfs.c
fails because of the stringop-truncation
warning triggered by this line: https://github.com/mit-pdos/xv6-riscv/blob/riscv/mkfs/mkfs.c#L154.
See gcc docs for an explanation of this warning. In short, if shortname
is too long, the string in the direntry buffer will not be null-terminated.
We fixed this by copying only the first DIRSIZE - 1
bytes and setting the last byte to null.
A similar case was found in kernel/fs.c
where we can instead use safestrcpy
.
Please let me know if there is anything that we have overlooked.