std.DynLib: open the fd with CLOEXEC
parent
48de57d824
commit
65d04cbeb4
|
@ -11,14 +11,9 @@ pub const DynLib = struct {
|
|||
map_addr: usize,
|
||||
map_size: usize,
|
||||
|
||||
/// Trusts the file
|
||||
pub fn findAndOpen(allocator: *mem.Allocator, name: []const u8) !DynLib {
|
||||
return open(allocator, name);
|
||||
}
|
||||
|
||||
/// Trusts the file
|
||||
pub fn open(allocator: *mem.Allocator, path: []const u8) !DynLib {
|
||||
const fd = try std.os.posixOpen(allocator, path, 0, linux.O_RDONLY);
|
||||
const fd = try std.os.posixOpen(allocator, path, 0, linux.O_RDONLY | linux.O_CLOEXEC);
|
||||
errdefer std.os.close(fd);
|
||||
|
||||
const size = usize((try std.os.posixFStat(fd)).size);
|
||||
|
|
|
@ -538,7 +538,7 @@ test "math.cast" {
|
|||
|
||||
pub const AlignCastError = error{UnalignedMemory};
|
||||
|
||||
/// Align cast a pointer but return an error if it's the wrong field
|
||||
/// Align cast a pointer but return an error if it's the wrong alignment
|
||||
pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alignCast(alignment, ptr)) {
|
||||
const addr = @ptrToInt(ptr);
|
||||
if (addr % alignment != 0) {
|
||||
|
|
Loading…
Reference in New Issue