mirror of
https://github.com/ziglang/zig.git
synced 2026-02-19 07:48:31 +00:00
openbsd: adding EPERM for msync() against hitting a immutable region page (#18701)
This commit is contained in:
parent
206e5e4d7d
commit
df6907f601
@ -4746,11 +4746,13 @@ pub fn munmap(memory: []align(mem.page_size) const u8) void {
|
||||
|
||||
pub const MSyncError = error{
|
||||
UnmappedMemory,
|
||||
PermissionDenied,
|
||||
} || UnexpectedError;
|
||||
|
||||
pub fn msync(memory: []align(mem.page_size) u8, flags: i32) MSyncError!void {
|
||||
switch (errno(system.msync(memory.ptr, memory.len, flags))) {
|
||||
.SUCCESS => return,
|
||||
.PERM => return error.PermissionDenied,
|
||||
.NOMEM => return error.UnmappedMemory, // Unsuccessful, provided pointer does not point mapped memory
|
||||
.INVAL => unreachable, // Invalid parameters.
|
||||
else => unreachable,
|
||||
@ -7106,6 +7108,7 @@ pub const MadviseError = error{
|
||||
pub fn madvise(ptr: [*]align(mem.page_size) u8, length: usize, advice: u32) MadviseError!void {
|
||||
switch (errno(system.madvise(ptr, length, advice))) {
|
||||
.SUCCESS => return,
|
||||
.PERM => return error.PermissionDenied,
|
||||
.ACCES => return error.AccessDenied,
|
||||
.AGAIN => return error.SystemResources,
|
||||
.BADF => unreachable, // The map exists, but the area maps something that isn't a file.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user