diff options
Diffstat (limited to 'net/ipv4/devinet.c')
-rw-r--r-- | net/ipv4/devinet.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index a34602ae27de..608a6f4223fb 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c | |||
@@ -952,17 +952,18 @@ static int inet_abc_len(__be32 addr) | |||
952 | { | 952 | { |
953 | int rc = -1; /* Something else, probably a multicast. */ | 953 | int rc = -1; /* Something else, probably a multicast. */ |
954 | 954 | ||
955 | if (ipv4_is_zeronet(addr)) | 955 | if (ipv4_is_zeronet(addr) || ipv4_is_lbcast(addr)) |
956 | rc = 0; | 956 | rc = 0; |
957 | else { | 957 | else { |
958 | __u32 haddr = ntohl(addr); | 958 | __u32 haddr = ntohl(addr); |
959 | |||
960 | if (IN_CLASSA(haddr)) | 959 | if (IN_CLASSA(haddr)) |
961 | rc = 8; | 960 | rc = 8; |
962 | else if (IN_CLASSB(haddr)) | 961 | else if (IN_CLASSB(haddr)) |
963 | rc = 16; | 962 | rc = 16; |
964 | else if (IN_CLASSC(haddr)) | 963 | else if (IN_CLASSC(haddr)) |
965 | rc = 24; | 964 | rc = 24; |
965 | else if (IN_CLASSE(haddr)) | ||
966 | rc = 32; | ||
966 | } | 967 | } |
967 | 968 | ||
968 | return rc; | 969 | return rc; |