commit 43373e61fa4ff7098b7b481fa72c1d205c530421 (tree)
parent e0a0df5a8a815ce99b40fd97a74b51d3fa9ab35d
Author: Yuto Oguchi <git@aiotter.com>
Date: Fri, 27 May 2022 09:15:51 +0900
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.
Diffstat:
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig
@@ -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;
diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig
@@ -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;