diff options
author | guy <guy> | 2006-05-16 08:30:05 +0000 |
---|---|---|
committer | guy <guy> | 2006-05-16 08:30:05 +0000 |
commit | 13a838cb485f0bad558dfa9359601175d3353dd5 (patch) | |
tree | 0264491e234b79cb6c92c4d257385a6132d0450f /grammar.y | |
parent | 6f754c86b27a422addc2dbfab79306fa62a0501f (diff) | |
download | libpcap-13a838cb485f0bad558dfa9359601175d3353dd5.tar.gz |
Check for IPv4 addreses used with "port", "portrange", "proto", or
"protochain".
Diffstat (limited to 'grammar.y')
-rw-r--r-- | grammar.y | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -22,7 +22,7 @@ */ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.91 2005-09-05 09:07:00 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/libpcap/grammar.y,v 1.92 2006-05-16 08:30:05 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -188,6 +188,14 @@ nid: ID { $$.b = gen_scode($1, $$.q = $<blk>0.q); } | HID { /* Decide how to parse HID based on proto */ $$.q = $<blk>0.q; + if ($$.q.addr == Q_PORT) + bpf_error("'port' modifier applied to ip host"); + else if ($$.q.addr == Q_PORTRANGE) + bpf_error("'portrange' modifier applied to ip host"); + else if ($$.q.addr == Q_PROTO) + bpf_error("'proto' modifier applied to ip host"); + else if ($$.q.addr == Q_PROTOCHAIN) + bpf_error("'protochain' modifier applied to ip host"); $$.b = gen_ncode($1, 0, $$.q); } | HID6 '/' NUM { |