mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Skip bind port 1 when ip_unprivileged_port_start<=1
Linux can allow to bind port 1 to user. And `ip_unprivileged_port_start` is 0 on [lima](https://github.com/lima-vm/lima) default vm. ``` 1) Socket#bind on SOCK_DGRAM socket raises Errno::EACCES when the current user does not have permission to bind FAILED Expected Errno::EACCES but no exception was raised (0 was returned) .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:38:in `block (4 levels) in <top (required)>' .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:4:in `<top (required)>' 2) Socket#bind on SOCK_STREAM socket raises Errno::EACCES when the current user does not have permission to bind FAILED Expected Errno::EACCES but no exception was raised (0 was returned) .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:79:in `block (4 levels) in <top (required)>' .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:44:in `<top (required)>' 3) Socket#bind using IPv4 using a packed socket address raises Errno::EACCES when the user is not allowed to bind to the port FAILED Expected Errno::EACCES but no exception was raised (0 was returned) .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:119:in `block (6 levels) in <top (required)>' .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:85:in `<top (required)>' 4) Socket#bind using IPv6 using a packed socket address raises Errno::EACCES when the user is not allowed to bind to the port FAILED Expected Errno::EACCES but no exception was raised (0 was returned) .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:119:in `block (6 levels) in <top (required)>' .../ruby/spec/ruby/library/socket/socket/bind_spec.rb:85:in `<top (required)>' ```
This commit is contained in:
parent
4a3e7984bf
commit
af6e088357
1 changed files with 4 additions and 0 deletions
|
@ -33,6 +33,7 @@ describe "Socket#bind on SOCK_DGRAM socket" do
|
|||
|
||||
platform_is_not :windows, :cygwin do
|
||||
as_user do
|
||||
break if File.read('/proc/sys/net/ipv4/ip_unprivileged_port_start').to_i <= 1 rescue nil
|
||||
it "raises Errno::EACCES when the current user does not have permission to bind" do
|
||||
sockaddr1 = Socket.pack_sockaddr_in(1, "127.0.0.1")
|
||||
-> { @sock.bind(sockaddr1) }.should raise_error(Errno::EACCES)
|
||||
|
@ -74,6 +75,7 @@ describe "Socket#bind on SOCK_STREAM socket" do
|
|||
|
||||
platform_is_not :windows, :cygwin do
|
||||
as_user do
|
||||
break if File.read('/proc/sys/net/ipv4/ip_unprivileged_port_start').to_i <= 1 rescue nil
|
||||
it "raises Errno::EACCES when the current user does not have permission to bind" do
|
||||
sockaddr1 = Socket.pack_sockaddr_in(1, "127.0.0.1")
|
||||
-> { @sock.bind(sockaddr1) }.should raise_error(Errno::EACCES)
|
||||
|
@ -113,6 +115,8 @@ describe 'Socket#bind' do
|
|||
|
||||
platform_is_not :windows do
|
||||
as_user do
|
||||
break if File.read('/proc/sys/net/ipv4/ip_unprivileged_port_start').to_i <= 1 rescue nil
|
||||
|
||||
it 'raises Errno::EACCES when the user is not allowed to bind to the port' do
|
||||
sockaddr1 = Socket.pack_sockaddr_in(1, ip_address)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue