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.
On some versions of gcc, compiling
mkfs.c
fails because of thestringop-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 inkernel/fs.c
where we can instead usesafestrcpy
.Please let me know if there is anything that we have overlooked.