Fwd: svn commit: r258677 - head/sbin/ipfw

Özkan KIRIK ozkan.kirik at gmail.com
Mon Dec 30 15:56:33 UTC 2013


Hi,

When this commit will be MFC'ed to stable/10?

Thanks,

---------- Forwarded message ----------
From: Alexander V. Chernikov <melifaro at freebsd.org>
Date: Wed, Nov 27, 2013 at 12:10 PM
Subject: svn commit: r258677 - head/sbin/ipfw
To: src-committers at freebsd.org, svn-src-all at freebsd.org,
svn-src-head at freebsd.org


Author: melifaro
Date: Wed Nov 27 10:10:25 2013
New Revision: 258677
URL: http://svnweb.freebsd.org/changeset/base/258677

Log:
  Fix key lookup in ipfw(8) broken since r232865.
  Print warning for IPv4 address strings which are valid in
  inet_aton() but not valid in inet_pton(). (1)

  Found by:     Özkan KIRIK <ozkan.kirik at gmail.com>
  Submitted by: Ian Smith <smithi at nimnet.asn.au> (1)
  MFC after:    2 weeks
  Sponsored by: Yandex LLC

Modified:
  head/sbin/ipfw/ipfw2.c

Modified: head/sbin/ipfw/ipfw2.c
==============================================================================
--- head/sbin/ipfw/ipfw2.c      Wed Nov 27 08:39:48 2013        (r258676)
+++ head/sbin/ipfw/ipfw2.c      Wed Nov 27 10:10:25 2013        (r258677)
@@ -4274,13 +4274,24 @@ table_fill_xentry(char *arg, ipfw_table_
                        addrlen = sizeof(struct in6_addr);
                } else {
                        /* Port or any other key */
-                       key = strtol(arg, &p, 10);
                        /* Skip non-base 10 entries like 'fa1' */
-                       if (p != arg) {
+                       key = strtol(arg, &p, 10);
+                       if (*p == '\0') {
                                pkey = (uint32_t *)paddr;
                                *pkey = htonl(key);
                                type = IPFW_TABLE_CIDR;
+                               masklen = 32;
                                addrlen = sizeof(uint32_t);
+                       } else if ((p != arg) && (*p == '.')) {
+                               /*
+                                * Warn on IPv4 address strings
+                                * which are "valid" for inet_aton() but not
+                                * in inet_pton().
+                                *
+                                * Typical examples: '10.5' or '10.0.0.05'
+                                */
+                               errx(EX_DATAERR,
+                                   "Invalid IPv4 address: %s", arg);
                        }
                }
        }
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"


More information about the freebsd-stable mailing list