]> granicus.if.org Git - sudo/commitdiff
Fix CIDR handling here too.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 15 Dec 2001 02:27:17 +0000 (02:27 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sat, 15 Dec 2001 02:27:17 +0000 (02:27 +0000)
testsudoers.c

index 79d382b56c961035bd0ec4d279e89ef419c37b6c..0750e949d17553226af97e06cf71940efe7f6900 100644 (file)
@@ -199,8 +199,13 @@ addr_matches(n)
        addr.s_addr = inet_addr(n);
        if (strchr(m, '.'))
            mask.s_addr = inet_addr(m);
-       else
-           mask.s_addr = (1 << atoi(m)) - 1;   /* XXX - better way? */
+       else {
+           i = 32 - atoi(m);
+           mask.s_addr = 0xffffffff;
+           mask.s_addr >>= i;
+           mask.s_addr <<= i;
+           mask.s_addr = htonl(mask.s_addr);
+       }
        *(m - 1) = '/';               
 
        for (i = 0; i < num_interfaces; i++)