mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-03-08 06:04:46 +01:00
std.Io.Threaded: correctly initialize PosixAddress/WsaAddress from sockaddr (#30722)
Resolves ziglang/zig#30672 - UB caused by `std.Io.Threaded.netLookupFallible` incorrectly initializing `PosixAddress`/`WsaAddress` from `*sockaddr`. Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30722 Co-authored-by: moriazoso <greysonmurray.dev@gmail.com> Co-committed-by: moriazoso <greysonmurray.dev@gmail.com>
This commit is contained in:
parent
6a5bb3ede3
commit
514b103edb
1 changed files with 2 additions and 4 deletions
|
|
@ -11997,8 +11997,7 @@ fn netLookupFallible(
|
|||
var canon_name: ?[*:0]const u16 = null;
|
||||
while (it) |info| : (it = info.next) {
|
||||
const addr = info.addr orelse continue;
|
||||
const storage: WsaAddress = .{ .any = addr.* };
|
||||
try resolved.putOne(t_io, .{ .address = addressFromWsa(&storage) });
|
||||
try resolved.putOne(t_io, .{ .address = addressFromWsa(@alignCast(@fieldParentPtr("any", addr))) });
|
||||
|
||||
if (info.canonname) |n| {
|
||||
if (canon_name == null) {
|
||||
|
|
@ -12153,8 +12152,7 @@ fn netLookupFallible(
|
|||
var canon_name: ?[*:0]const u8 = null;
|
||||
while (it) |info| : (it = info.next) {
|
||||
const addr = info.addr orelse continue;
|
||||
const storage: PosixAddress = .{ .any = addr.* };
|
||||
try resolved.putOne(t_io, .{ .address = addressFromPosix(&storage) });
|
||||
try resolved.putOne(t_io, .{ .address = addressFromPosix(@alignCast(@fieldParentPtr("any", addr))) });
|
||||
|
||||
if (info.canonname) |n| {
|
||||
if (canon_name == null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue