authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-06-24 23:34:22+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-06-24 23:34:31+02:00
logddd2cd73307c06906a8d120b41fd5ab8864797a1
tree8c0f8fe31061a60db637ffc9120f800a0379beb1
parent264f5f4544fc87330d328d1aea96a27934738368

zld: fix Dylib.Id parsing logic for string values


1 files changed, 6 insertions(+), 6 deletions(-)

src/link/MachO/Dylib.zig+6-6
...@@ -94,20 +94,20 @@ pub const Id = struct {...@@ -94,20 +94,20 @@ pub const Id = struct {
94 var values: [3][]const u8 = undefined;94 var values: [3][]const u8 = undefined;
9595
96 var split = mem.split(string, ".");96 var split = mem.split(string, ".");
97 var i: u4 = 0;97 var count: u4 = 0;
98 while (split.next()) |value| {98 while (split.next()) |value| {
99 if (i > 2) {99 if (count > 2) {
100 log.warn("malformed version field: {s}", .{string});100 log.warn("malformed version field: {s}", .{string});
101 return 0x10000;101 return 0x10000;
102 }102 }
103 values[i] = value;103 values[count] = value;
104 i += 1;104 count += 1;
105 }105 }
106106
107 if (values.len > 2) {107 if (count > 2) {
108 out += try fmt.parseInt(u8, values[2], 10);108 out += try fmt.parseInt(u8, values[2], 10);
109 }109 }
110 if (values.len > 1) {110 if (count > 1) {
111 out += @intCast(u32, try fmt.parseInt(u8, values[1], 10)) << 8;111 out += @intCast(u32, try fmt.parseInt(u8, values[1], 10)) << 8;
112 }112 }
113 out += @intCast(u32, try fmt.parseInt(u16, values[0], 10)) << 16;113 out += @intCast(u32, try fmt.parseInt(u16, values[0], 10)) << 16;