std.DynLib: open the fd with CLOEXEC

master
Andrew Kelley 2018-06-16 17:27:45 -04:00
parent 48de57d824
commit 65d04cbeb4
2 changed files with 2 additions and 7 deletions

View File

@ -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);

View File

@ -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) {