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
		Add a link
		
	
		Reference in a new issue
	
	 Kazuhiro NISHIYAMA
						Kazuhiro NISHIYAMA