> The filter for LLC OUI or PID is broken.
> When I try to select a OUI or a PID and run "Match selected", Ethereal
> quits.
> Then I tried the filter "llc.oui==0xc" and again the Ethereal exits.
"Dumps core" is a more complete description than "quits"....
Filtering on 24-bit fields such as the OUI in an LLC header was broken
(as I discovered when filtering on that exact same condition); I've
checked in a fix, and have attached the patch to this message.
Index: dfilter-grammar.y
===================================================================
RCS file: /usr/local/cvsroot/ethereal/dfilter-grammar.y,v
retrieving revision 1.37
retrieving revision 1.38
diff -c -r1.37 -r1.38
*** dfilter-grammar.y 1999/11/15 06:32:11 1.37
--- dfilter-grammar.y 2000/02/05 06:07:16 1.38
***************
*** 144,152 ****
--- 144,154 ----
%token <variable> T_FT_UINT8
%token <variable> T_FT_UINT16
+ %token <variable> T_FT_UINT24
%token <variable> T_FT_UINT32
%token <variable> T_FT_INT8
%token <variable> T_FT_INT16
+ %token <variable> T_FT_INT24
%token <variable> T_FT_INT32
%token <variable> T_FT_ETHER
%token <variable> T_FT_IPv4
***************
*** 490,498 ****
--- 492,502 ----
numeric_variable: T_FT_UINT8 { $$ = dfilter_mknode_numeric_variable($1.id); }
| T_FT_UINT16 { $$ = dfilter_mknode_numeric_variable($1.id); }
+ | T_FT_UINT24 { $$ = dfilter_mknode_numeric_variable($1.id); }
| T_FT_UINT32 { $$ = dfilter_mknode_numeric_variable($1.id); }
| T_FT_INT8 { $$ = dfilter_mknode_numeric_variable($1.id); }
| T_FT_INT16 { $$ = dfilter_mknode_numeric_variable($1.id); }
+ | T_FT_INT24 { $$ = dfilter_mknode_numeric_variable($1.id); }
| T_FT_INT32 { $$ = dfilter_mknode_numeric_variable($1.id); }
;
***************
*** 536,544 ****
--- 540,550 ----
any_variable_type: T_FT_UINT8 { $$ = $1; }
| T_FT_UINT16 { $$ = $1; }
+ | T_FT_UINT24 { $$ = $1; }
| T_FT_UINT32 { $$ = $1; }
| T_FT_INT8 { $$ = $1; }
| T_FT_INT16 { $$ = $1; }
+ | T_FT_INT24 { $$ = $1; }
| T_FT_INT32 { $$ = $1; }
| T_FT_DOUBLE { $$ = $1; }
| T_FT_ETHER { $$ = $1; }
Index: dfilter-scanner.l
===================================================================
RCS file: /usr/local/cvsroot/ethereal/dfilter-scanner.l,v
retrieving revision 1.27
retrieving revision 1.28
diff -c -r1.27 -r1.28
*** dfilter-scanner.l 2000/01/10 17:32:50 1.27
--- dfilter-scanner.l 2000/02/05 06:07:16 1.28
***************
*** 194,199 ****
--- 194,202 ----
case FT_UINT16:
retval = T_FT_UINT16;
break;
+ case FT_UINT24:
+ retval = T_FT_UINT24;
+ break;
case FT_UINT32:
retval = T_FT_UINT32;
break;
***************
*** 202,207 ****
--- 205,213 ----
break;
case FT_INT16:
retval = T_FT_INT16;
+ break;
+ case FT_INT24:
+ retval = T_FT_INT24;
break;
case FT_INT32:
retval = T_FT_INT32;