path: root/gtk/main.c
diff options
authorGilbert Ramirez <gram@alumni.rice.edu>1999-10-12 04:21:13 +0000
committerGilbert Ramirez <gram@alumni.rice.edu>1999-10-12 04:21:13 +0000
commit1efcb7b2cfc60043e672d5cc4c78aabbe50f5416 (patch)
tree8cd2fc805be40ddf06f39ad6ccdfb858df0be348 /gtk/main.c
parent0faf7339147a90ae176d10932e14b4170241734a (diff)
Re-implemented fix to keep display filter from reading data from outside
the packet boundary. Now the field boundary is honored. The frame boundary is ignored, but of course we put proper field lengths in the proto_tree, right? :) Implemented negative offsets in byte-strings: frame[-4:4] will read the last 4 bytes of a frame. Implemented "offset-only" byte-string comparisons, since the dfilter compiler knows the length of the byte-string you supplied. These are now legal: frame[-4] == tr.dst[0] == 00:06:29 Implemented the use of integers if you're comparing one byte. These are legal: llc[0] == 0xaa llc[0:1] == 0xaa All these forms check against the length of the field, so these will be reported as bad to the user: eth.src[5] == 00:06:29 (goes beyond field boundary) eth.dst == (too long, goes beyond field boundary) Thes is also reported as bad: eth.dst[0:3] == 1.2 (incorrect number of bytes specified) eth.dst[0:1] == eth.src[0:2] (disparate lengths) I had to add a new function, proto_registrar_get_length() in proto.c, which reports the length of a field as can be determined at registration time. There are some shift/reduce errors in the grammar that I need to get rid of. svn path=/trunk/; revision=811
Diffstat (limited to 'gtk/main.c')
0 files changed, 0 insertions, 0 deletions