tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

stray & in SIOGLIFCONF ioctl handling



In

        case SIOCGLIFADDR:
        case SIOCDLIFADDR:

there is a looop over addresses, and there is an extra & of something
that's already a pointer.  (This bug was found by my colleague Mark
Keaton; it caused the ioctl not to find a match.)

I'll commit this to -current and request pullups if there are no
objections.


Index: sys/netinet/in.c
===================================================================
RCS file: /cvsroot/src/sys/netinet/in.c,v
retrieving revision 1.142
diff -u -p -r1.142 in.c
--- sys/netinet/in.c    12 Dec 2011 00:06:39 -0000      1.142
+++ sys/netinet/in.c    4 Jun 2012 18:47:22 -0000
@@ -729,7 +729,7 @@ in_lifaddr_ioctl(struct socket *so, u_lo
                                continue;
                        if (cmp == 0)
                                break;
-                       candidate.s_addr = ((struct sockaddr_in 
*)&ifa->ifa_addr)->sin_addr.s_addr;
+                       candidate.s_addr = ((struct sockaddr_in 
*)ifa->ifa_addr)->sin_addr.s_addr;
                        candidate.s_addr &= mask.s_addr;
                        if (candidate.s_addr == match.s_addr)
                                break;

Attachment: pgpWCmQHaQTi6.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index