authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-06-16 17:27:45-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-06-16 17:27:45-04:00
log65d04cbeb42318c66313346bb88999aee17f856f
treecd779a01f3f78322392cce0039212d50a0bdddc3
parent48de57d8248d9203b44d28d7749b5d7c1a00deba

std.DynLib: open the fd with CLOEXEC


2 files changed, 2 insertions(+), 7 deletions(-)

std/dynamic_library.zig+1-6
...@@ -11,14 +11,9 @@ pub const DynLib = struct {...@@ -11,14 +11,9 @@ pub const DynLib = struct {
11 map_addr: usize,11 map_addr: usize,
12 map_size: usize,12 map_size: usize,
1313
14 /// Trusts the file
15 pub fn findAndOpen(allocator: *mem.Allocator, name: []const u8) !DynLib {
16 return open(allocator, name);
17 }
18
19 /// Trusts the file14 /// Trusts the file
20 pub fn open(allocator: *mem.Allocator, path: []const u8) !DynLib {15 pub fn open(allocator: *mem.Allocator, path: []const u8) !DynLib {
21 const fd = try std.os.posixOpen(allocator, path, 0, linux.O_RDONLY);16 const fd = try std.os.posixOpen(allocator, path, 0, linux.O_RDONLY | linux.O_CLOEXEC);
22 errdefer std.os.close(fd);17 errdefer std.os.close(fd);
2318
24 const size = usize((try std.os.posixFStat(fd)).size);19 const size = usize((try std.os.posixFStat(fd)).size);
std/math/index.zig+1-1
...@@ -538,7 +538,7 @@ test "math.cast" {...@@ -538,7 +538,7 @@ test "math.cast" {
538538
539pub const AlignCastError = error{UnalignedMemory};539pub const AlignCastError = error{UnalignedMemory};
540540
541/// Align cast a pointer but return an error if it's the wrong field541/// Align cast a pointer but return an error if it's the wrong alignment
542pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alignCast(alignment, ptr)) {542pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alignCast(alignment, ptr)) {
543 const addr = @ptrToInt(ptr);543 const addr = @ptrToInt(ptr);
544 if (addr % alignment != 0) {544 if (addr % alignment != 0) {