From: knu@... Date: 2017-10-21T08:03:16+00:00 Subject: [ruby-core:83436] [Ruby trunk Bug#13399] IPAddr accepts invalid address mask Issue #13399 has been updated by knu (Akinori MUSHA). nobu (Nobuyoshi Nakada) wrote: > After fixing it, I found that `drb/acl` depends on this behavior. Thanks for the patch, but what do you mean by `drb/acl` depending on this behavior? ---------------------------------------- Bug #13399: IPAddr accepts invalid address mask https://bugs.ruby-lang.org/issues/13399#change-67403 * Author: rtib (Tibor Repasi) * Status: Assigned * Priority: Normal * Assignee: knu (Akinori MUSHA) * Target version: * ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin15] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- API Class `IPAddr` can be initialised with e.g. '1.2.3.4/255.255.255.1', which is an invalid mask for an IPv4 address, however, `IPAddr.new` won't throw `ArgumentError`, nor `ip.ipv4?` will return `false`. ```ruby $ cat iptest.rb require 'ipaddr' begin ip = IPAddr.new('1.2.3.4/255.255.255.1') rescue ArgumentError puts 'ArgumentError was thrown' end puts 'IP address is valid' if ip.ipv4? ``` ``` $ ruby iptest.rb IP address is valid ``` ``` $ ipcalc 1.2.3.4/255.255.255.1 INVALID NETMASK INVALID MASK1: 255.255.255.1 Address: 1.2.3.4 00000001.00000010.00000011. 00000100 Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000 Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111 => Network: 1.2.3.0/24 00000001.00000010.00000011. 00000000 HostMin: 1.2.3.1 00000001.00000010.00000011. 00000001 HostMax: 1.2.3.254 00000001.00000010.00000011. 11111110 Broadcast: 1.2.3.255 00000001.00000010.00000011. 11111111 Hosts/Net: 254 Class A -- https://bugs.ruby-lang.org/ Unsubscribe: