diff options
| author | Alexandros Naskos <alex_naskos@hotmail.com> | 2020-03-02 11:44:21 +0200 |
|---|---|---|
| committer | Alexandros Naskos <alex_naskos@hotmail.com> | 2020-03-02 11:44:21 +0200 |
| commit | a48cd1cf585a0f69f381a61ac43678c64e4a9a81 (patch) | |
| tree | 849f896e3e14ee8cda15142db285a3808af68873 /lib/std | |
| parent | 00be934569d25e3b041091ff63a4cf6c456d1403 (diff) | |
| download | zig-a48cd1cf585a0f69f381a61ac43678c64e4a9a81.tar.gz zig-a48cd1cf585a0f69f381a61ac43678c64e4a9a81.zip | |
Allow wrapping in VDSO lookup
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/os/linux/vdso.zig | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/std/os/linux/vdso.zig b/lib/std/os/linux/vdso.zig index 868eb26c69..dc056ddba4 100644 --- a/lib/std/os/linux/vdso.zig +++ b/lib/std/os/linux/vdso.zig @@ -22,7 +22,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize { }) { const this_ph = @intToPtr(*elf.Phdr, ph_addr); switch (this_ph.p_type) { - elf.PT_LOAD => base = vdso_addr + this_ph.p_offset - this_ph.p_vaddr, + elf.PT_LOAD => base = vdso_addr +% this_ph.p_offset -% this_ph.p_vaddr, elf.PT_DYNAMIC => maybe_dynv = @intToPtr([*]usize, vdso_addr + this_ph.p_offset), else => {}, } @@ -40,7 +40,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize { { var i: usize = 0; while (dynv[i] != 0) : (i += 2) { - const p = base + dynv[i + 1]; + const p = base +% dynv[i + 1]; switch (dynv[i]) { elf.DT_STRTAB => maybe_strings = @intToPtr([*]u8, p), elf.DT_SYMTAB => maybe_syms = @intToPtr([*]elf.Sym, p), @@ -71,7 +71,7 @@ pub fn lookup(vername: []const u8, name: []const u8) usize { if (!checkver(maybe_verdef.?, versym[i], vername, strings)) continue; } - return base + syms[i].st_value; + return base +% syms[i].st_value; } return 0; |
