std.c: Fix incorrect dirent structure (#11602)

d_name is a null-terminated string, but it is not guaranteed that the
last byte of the array is null.
This commit is contained in:
Yuto Oguchi 2022-05-27 09:15:51 +09:00 committed by GitHub
parent e0a0df5a8a
commit 43373e61fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -928,12 +928,12 @@ pub const Sigaction = extern struct {
};
pub const dirent = extern struct {
d_ino: usize,
d_seekoff: usize,
d_ino: u64,
d_seekoff: u64,
d_reclen: u16,
d_namlen: u16,
d_type: u8,
d_name: u8, // field address is address of first byte of name
d_name: [1024]u8,
pub fn reclen(self: dirent) u16 {
return self.d_reclen;

View File

@ -337,7 +337,7 @@ pub const dirent = extern struct {
d_reclen: u16,
d_namlen: u16,
d_type: u8,
d_name: [MAXNAMLEN:0]u8,
d_name: [MAXNAMLEN + 1]u8,
pub fn reclen(self: dirent) u16 {
return self.d_reclen;