capwap: Bind address should be big endian.
authorJesse Gross <jesse@nicira.com>
Sat, 4 Dec 2010 21:49:50 +0000 (13:49 -0800)
committerJesse Gross <jesse@nicira.com>
Fri, 10 Dec 2010 01:43:36 +0000 (17:43 -0800)
CAPWAP creates a UDP socket that accepts packets from any address using
INADDR_ANY.  IP addresses should be in network byte order but that
constant is in host byte order, so use htonl.  However, this is not a
real bug since the value of INADDR_ANY is 0.

Found with sparse.

Signed-off-by: Jesse Gross <jesse@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
datapath/vport-capwap.c

index 3f6f941..e17d85f 100644 (file)
@@ -237,7 +237,7 @@ static int capwap_init(void)
                goto error;
 
        sin.sin_family = AF_INET;
-       sin.sin_addr.s_addr = INADDR_ANY;
+       sin.sin_addr.s_addr = htonl(INADDR_ANY);
        sin.sin_port = htons(CAPWAP_DST_PORT);
 
        err = kernel_bind(capwap_rcv_socket, (struct sockaddr *)&sin,