mit-pdos / xv6-riscv

Xv6 for RISC-V
Other
6.52k stars 2.37k forks source link

Fix bug where long directory names might not be null-terminated #206

Open Danacus opened 9 months ago

Danacus commented 9 months ago

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.