File tree Expand file tree Collapse file tree 3 files changed +10
-2
lines changed Expand file tree Collapse file tree 3 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -1420,6 +1420,7 @@ const LinuxThreadImpl = struct {
1420
1420
error .PermissionDenied = > unreachable ,
1421
1421
error .ProcessFdQuotaExceeded = > unreachable ,
1422
1422
error .SystemFdQuotaExceeded = > unreachable ,
1423
+ error .MappingAlreadyExists = > unreachable ,
1423
1424
else = > | e | return e ,
1424
1425
};
1425
1426
assert (mapped .len >= map_bytes );
Original file line number Diff line number Diff line change @@ -2434,14 +2434,17 @@ pub const ElfModule = struct {
2434
2434
const end_pos = elf_file .getEndPos () catch return bad ();
2435
2435
const file_len = cast (usize , end_pos ) orelse return error .Overflow ;
2436
2436
2437
- const mapped_mem = try std .posix .mmap (
2437
+ const mapped_mem = std .posix .mmap (
2438
2438
null ,
2439
2439
file_len ,
2440
2440
std .posix .PROT .READ ,
2441
2441
.{ .TYPE = .SHARED },
2442
2442
elf_file .handle ,
2443
2443
0 ,
2444
- );
2444
+ ) catch | err | switch (err ) {
2445
+ error .MappingAlreadyExists = > unreachable ,
2446
+ else = > | e | return e ,
2447
+ };
2445
2448
errdefer std .posix .munmap (mapped_mem );
2446
2449
2447
2450
return load (
Original file line number Diff line number Diff line change @@ -4754,6 +4754,9 @@ pub const MMapError = error{
4754
4754
ProcessFdQuotaExceeded ,
4755
4755
SystemFdQuotaExceeded ,
4756
4756
OutOfMemory ,
4757
+
4758
+ /// Using FIXED_NOREPLACE flag and the process has already mapped memory at the given address
4759
+ MappingAlreadyExists ,
4757
4760
} || UnexpectedError ;
4758
4761
4759
4762
/// Map files or devices into memory.
@@ -4792,6 +4795,7 @@ pub fn mmap(
4792
4795
.MFILE = > return error .ProcessFdQuotaExceeded ,
4793
4796
.NFILE = > return error .SystemFdQuotaExceeded ,
4794
4797
.NOMEM = > return error .OutOfMemory ,
4798
+ .EXIST = > return error .MappingAlreadyExists ,
4795
4799
else = > return unexpectedErrno (err ),
4796
4800
}
4797
4801
}
You can’t perform that action at this time.
0 commit comments