diff --git a/arch/x86_64/bits/statfs.h b/arch/x86_64/bits/statfs.h index 51bf8a5b..63de75bb 100644 --- a/arch/x86_64/bits/statfs.h +++ b/arch/x86_64/bits/statfs.h @@ -11,5 +11,5 @@ struct statvfs { unsigned long f_frsize; fsfilcnt_t f_favail; unsigned long f_flag; - unsigned long __reserved[2]; + unsigned long __reserved[3]; }; diff --git a/src/stat/fstatvfs.c b/src/stat/fstatvfs.c index 8a2e4235..833e8ec8 100644 --- a/src/stat/fstatvfs.c +++ b/src/stat/fstatvfs.c @@ -4,7 +4,7 @@ int fstatvfs(int fd, struct statvfs *buf) { - return syscall(SYS_fstatfs, fd, buf); + return syscall(SYS_fstatfs, fd, sizeof *buf, buf); } weak_alias(fstatvfs, fstatfs); diff --git a/src/stat/statvfs.c b/src/stat/statvfs.c index 17252997..517eebda 100644 --- a/src/stat/statvfs.c +++ b/src/stat/statvfs.c @@ -4,7 +4,7 @@ int statvfs(const char *path, struct statvfs *buf) { - return syscall(SYS_statfs, path, buf); + return syscall(SYS_statfs, path, sizeof *buf, buf); } weak_alias(statvfs, statfs);