Parcourir la source

[IPv4] Fix multicast address checking

From: Viswanath Krishnamurthy <viswa.krish@gmail.com>

The current ipv4 incorrectly checks the IP address for multicast address.
This causes valid IPv4 unicast address to be trated as multicast address

For e.g if the PXE/tftp server IP address is 192.168.4.XXX where XXX is
224 or greater, it gets treated as multicast address and a ethernet
multicast address is sent out on the wire causing timeouts
tags/v0.9.4
Michael Brown il y a 16 ans
Parent
révision
1dcc60e5ad
1 fichiers modifiés avec 1 ajouts et 1 suppressions
  1. 1
    1
      src/net/ipv4.c

+ 1
- 1
src/net/ipv4.c Voir le fichier

@@ -273,7 +273,7 @@ static int ipv4_ll_addr ( struct in_addr dest, struct in_addr src,
273 273
 		memcpy ( ll_dest, ll_protocol->ll_broadcast,
274 274
 			 ll_protocol->ll_addr_len );
275 275
 		return 0;
276
-	} else if ( IN_MULTICAST ( dest.s_addr ) ) {
276
+	} else if ( IN_MULTICAST ( ntohl ( dest.s_addr ) ) ) {
277 277
 		/* Special case: IPv4 multicast over Ethernet.	This
278 278
 		 * code may need to be generalised once we find out
279 279
 		 * what happens for other link layers.

Chargement…
Annuler
Enregistrer