From dphill@inav.net Sun Sep 19 07:00:55 1999
Return-Path: <dphill@inav.net>
Received: from soli.inav.net (soli.inav.net [199.120.107.103])
	by hub.freebsd.org (Postfix) with ESMTP id E144C15363
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 19 Sep 1999 07:00:45 -0700 (PDT)
	(envelope-from dphill@inav.net)
Received: from deanstoy.dphill.inav.net (dip565.inav.net [206.230.238.154])
	by soli.inav.net (8.8.7/8.8.7) with ESMTP id JAA20630
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 19 Sep 1999 09:00:42 -0500
Received: (from dean@localhost)
	by deanstoy.dphill.inav.net (8.9.3/8.9.2) id RAA00722;
	Sat, 18 Sep 1999 17:25:10 -0500 (CDT)
	(envelope-from dean)
Message-Id: <199909182225.RAA00722@deanstoy.dphill.inav.net>
Date: Sat, 18 Sep 1999 17:25:10 -0500 (CDT)
From: "Dean M. Phillips" <dphill@inav.net>
Reply-To: dphill@inav.net
To: FreeBSD-gnats-submit@freebsd.org
Subject: Userland PPP filter parsing bug.
X-Send-Pr-Version: 3.2

>Number:         13819
>Category:       misc
>Synopsis:       [PATCH] Userland ppp rejects "lt" operator in filter
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    brian
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 19 07:10:01 PDT 1999
>Closed-Date:    Mon Sep 20 18:02:15 PDT 1999
>Last-Modified:  Mon Sep 20 18:02:37 PDT 1999
>Originator:     Dean M. Phillips
>Release:        FreeBSD 3.3-RC i386
>Organization:
None Whatsoever!
>Environment:

FreeBSD deanstoy 3.3-RC FreeBSD 3.3-RC #0: Sat Sep 11 09:51:31 CDT 1999     root@deanstoy:/usr/src/sys/compile/DEANSTOY  i386

 * $FreeBSD: src/usr.sbin/ppp/filter.c,v 1.26.2.5 1999/08/29 15:45:59 peter Exp $

>Description:

The command:
set filter in 9 deny tcp dst lt 1024
gives the error:
Warning: ParseUdpOrTcp: bad operation

>How-To-Repeat:

Start ppp and say:
set filter in 9 deny tcp dst lt 1024

>Fix:
	
Consider the following bit of filter.h - the numbers run consequtively:

/* Operations - f_srcop, f_dstop */
#define OP_NONE 0
#define OP_EQ   1
#define OP_GT   2
#define OP_LT   3

The following patch seems to fix it:
-------------------------------------------------------------------------
--- filter.c.~1~        Tue Sep  7 21:32:42 1999
+++ filter.c    Fri Sep 17 22:20:14 1999
@@ -622,7 +622,7 @@
   return proto;
 }
 
-static const char *opname[] = {"none", "eq", "gt", "unknown", "lt"};
+static const char *opname[] = {"none", "eq", "gt", "lt", "unknown"};
 
 const char *
 filter_Op2Nam(int op)
-------------------------------------------------------------------------

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: ru 
Responsible-Changed-When: Mon Sep 20 01:28:47 PDT 1999 
Responsible-Changed-Why:  
Over to the maintainer. 
State-Changed-From-To: open->closed 
State-Changed-By: brian 
State-Changed-When: Mon Sep 20 18:02:15 PDT 1999 
State-Changed-Why:  
Patch applied to -current, thanks. 
>Unformatted:
