aboutsummaryrefslogtreecommitdiff
path: root/lib/std/process.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-09-12 10:48:38 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-09-12 10:48:38 -0700
commitaf4cc20ce275aeb0e59eee3d893b2f310c1f0239 (patch)
treecc3ff8fa792c20ff0fc0f1e19e98998cc76c07c2 /lib/std/process.zig
parent03a23418ff13e6ff64cdeed3ef4b54f99c533d88 (diff)
parent9fe4c89230df2d78c8bf37b4b1d7a9bedb92677b (diff)
downloadzig-af4cc20ce275aeb0e59eee3d893b2f310c1f0239.tar.gz
zig-af4cc20ce275aeb0e59eee3d893b2f310c1f0239.zip
Merge remote-tracking branch 'origin/master' into stage2-zig-cc
Master branch added in the concept of library versioning being optional to main.cpp. It will need to be re-added into this branch before merging back into master.
Diffstat (limited to 'lib/std/process.zig')
-rw-r--r--lib/std/process.zig14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/std/process.zig b/lib/std/process.zig
index 9cb571714c..2813d8cbab 100644
--- a/lib/std/process.zig
+++ b/lib/std/process.zig
@@ -593,8 +593,10 @@ pub fn getUserInfo(name: []const u8) !UserInfo {
/// TODO this reads /etc/passwd. But sometimes the user/id mapping is in something else
/// like NIS, AD, etc. See `man nss` or look at an strace for `id myuser`.
pub fn posixGetUserInfo(name: []const u8) !UserInfo {
- var reader = try io.Reader.open("/etc/passwd", null);
- defer reader.close();
+ const file = try std.fs.openFileAbsolute("/etc/passwd", .{});
+ defer file.close();
+
+ const reader = file.reader();
const State = enum {
Start,
@@ -650,8 +652,8 @@ pub fn posixGetUserInfo(name: []const u8) !UserInfo {
'0'...'9' => byte - '0',
else => return error.CorruptPasswordFile,
};
- if (@mulWithOverflow(u32, uid, 10, *uid)) return error.CorruptPasswordFile;
- if (@addWithOverflow(u32, uid, digit, *uid)) return error.CorruptPasswordFile;
+ if (@mulWithOverflow(u32, uid, 10, &uid)) return error.CorruptPasswordFile;
+ if (@addWithOverflow(u32, uid, digit, &uid)) return error.CorruptPasswordFile;
},
},
.ReadGroupId => switch (byte) {
@@ -666,8 +668,8 @@ pub fn posixGetUserInfo(name: []const u8) !UserInfo {
'0'...'9' => byte - '0',
else => return error.CorruptPasswordFile,
};
- if (@mulWithOverflow(u32, gid, 10, *gid)) return error.CorruptPasswordFile;
- if (@addWithOverflow(u32, gid, digit, *gid)) return error.CorruptPasswordFile;
+ if (@mulWithOverflow(u32, gid, 10, &gid)) return error.CorruptPasswordFile;
+ if (@addWithOverflow(u32, gid, digit, &gid)) return error.CorruptPasswordFile;
},
},
}