diff --git a/lib/std/os.zig b/lib/std/os.zig index 2fe7ba9c5a91a04b6893da80181bb7f0c4dd4a19..946c9db012c24835690b6942b0685426e7ceaa71 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -6121,7 +6121,7 @@ pub fn getrlimit(resource: rlimit_resource) GetrlimitError!rlimit { } } -pub const SetrlimitError = error{PermissionDenied} || UnexpectedError; +pub const SetrlimitError = error{PermissionDenied, LimitTooBig} || UnexpectedError; pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void { const setrlimit_sym = if (builtin.os.tag == .linux and builtin.link_libc) @@ -6132,7 +6132,7 @@ pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void switch (errno(setrlimit_sym(resource, &limits))) { 0 => return, EFAULT => unreachable, // bogus pointer - EINVAL => unreachable, + EINVAL => return error.LimitTooBig, // this could also mean "invalid resource", but that would be unreachable EPERM => return error.PermissionDenied, else => |err| return unexpectedErrno(err), }