Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Feb 95  0:20:56 +0000
From:      Andrew.Gordon@net-tel.co.uk
To:        bugs@FreeBSD.org
Subject:   Bug in ppp packet filter (and fix!)
Message-ID:  <"MAC-950220002210-359B*/G=Andrew/S=Gordon/O=Net-Tel Computer Systems Ltd/PRMD=Net-Tel/ADMD=Gold 400/C=GB/"@MHS>

next in thread | raw e-mail | index | archive | help
Bug in: /usr/sbin/ppp
Version: SNAP-950210, and source of about 2 days ago
Detail:  The 'set ifilter'/'set ofilter' commands accept a syntax containing
         IP addresses and/or protocol+port, but in the case where both are
         supplied, it happily accepts the command but ignores the proto+port
         It also attempts to handle the case where the second IP address
         is omitted, but this doesn't work.

Fix:

In src/usr.sbin/ppp/filter.c:

*** filter.c.old        Sun Feb 19 22:37:05 1995
--- filter.c    Sun Feb 19 22:44:11 1995
***************
*** 317,321 ****
    }

!   fp->proto = proto = ParseProto(argc, argv);
    if (proto == P_NONE) {
      if (ParseAddr(argc, argv, &fp->saddr, &fp->smask, &fp->swidth)) {
--- 317,321 ----
    }

!   proto = ParseProto(argc, argv);
    if (proto == P_NONE) {
      if (ParseAddr(argc, argv, &fp->saddr, &fp->smask, &fp->swidth)) {
***************
*** 327,333 ****
        }
        proto = ParseProto(argc, argv);
!       if (proto) {
!         argc--; argv++;
!       }
        }
      } else {
--- 327,333 ----
        }
        proto = ParseProto(argc, argv);
!       }
!       if (proto) {
!         argc--; argv++;
        }
      } else {
***************
*** 340,343 ****
--- 340,344 ----

    val = 1;
+   fp->proto = proto;

    switch (proto) {
***************
*** 353,357 ****
    }

[The key change is the extra line fp->proto = proto;  - the rest is just
cleaning up].



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?"MAC-950220002210-359B*/G=Andrew/S=Gordon/O=Net-Tel Computer Systems Ltd/PRMD=Net-Tel/ADMD=Gold 400/C=GB/">