Fix EINVAL when setting IPv6 multicast membership (#17478)

This commit is contained in:
Kai Tamkun
2025-02-21 18:34:40 -08:00
committed by GitHub
parent 8f7143882e
commit bda1ad192d
3 changed files with 56 additions and 3 deletions

View File

@@ -444,12 +444,12 @@ pub const UDPSocket = struct {
return globalThis.throwInvalidArguments("Expected 1 argument, got {}", .{arguments.len});
}
var addr: std.posix.sockaddr.storage = undefined;
var addr = std.mem.zeroes(std.posix.sockaddr.storage);
if (!parseAddr(this, globalThis, JSC.jsNumber(0), arguments[0], &addr)) {
return globalThis.throwValue(bun.JSC.Maybe(void).errnoSys(@as(i32, @intCast(@intFromEnum(std.posix.E.INVAL))), .setsockopt).?.toJS(globalThis));
}
var interface: std.posix.sockaddr.storage = undefined;
var interface = std.mem.zeroes(std.posix.sockaddr.storage);
const res = if (arguments.len > 1 and parseAddr(this, globalThis, JSC.jsNumber(0), arguments[1], &interface)) blk: {
if (addr.family != interface.family) {