Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
7751-kernel-Fixed-UDP-option-processing.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 7751-kernel-Fixed-UDP-option-processing.patch of Package erlang
From c110a0317f5aa2a3b7ceb12fd9ae2f3d5092b33c Mon Sep 17 00:00:00 2001 From: Micael Karlberg <bmk@erlang.org> Date: Wed, 16 Nov 2022 16:26:49 +0100 Subject: [PATCH 1/5] [kernel] Fixed UDP option processing If the options argument to the (gen_udp-) open function call contained the options add_membership or drop_membership, any option earlier in the options list was discarded. OTP-18323 --- lib/kernel/src/inet.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl index 37f1706fb2..d836f6b367 100644 --- a/lib/kernel/src/inet.erl +++ b/lib/kernel/src/inet.erl @@ -1203,8 +1203,8 @@ udp_opt([Opt | Opts], #udp_opts{ifaddr = IfAddr} = R, As) -> {error, badarg} end; {active,N} when is_integer(N), N < 32768, N >= -32768 -> - NOpts = lists:keydelete(active, 1, R#udp_opts.opts), - udp_opt(Opts, R#udp_opts { opts = [{active,N}|NOpts] }, As); + POpts = lists:keydelete(active, 1, R#udp_opts.opts), + udp_opt(Opts, R#udp_opts { opts = [{active,N}|POpts] }, As); {Membership, {MAddr, If}} when ((Membership =:= add_membership) orelse @@ -1212,7 +1212,8 @@ udp_opt([Opt | Opts], #udp_opts{ifaddr = IfAddr} = R, As) -> (tuple_size(MAddr) =:= 4) andalso ((If =:= any) orelse (tuple_size(If) =:= 4)) -> MembershipOpt = {Membership, {MAddr, If, 0}}, - udp_opt(Opts, R#udp_opts{opts = [MembershipOpt|Opts]}, As); + POpts = R#udp_opts.opts, + udp_opt(Opts, R#udp_opts{opts = [MembershipOpt|POpts]}, As); {Name,Val} when is_atom(Name) -> udp_add(Name, Val, R, Opts, As); -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor