On Apr 1, 2005, at 2:56 AM, Gabriel wrote:

Yes, it works when I use the -O option. Thanks.

So it's probably an optimizer bug, and...

The output of the first one is:
---------
[EMAIL PROTECTED]:~> sudo tcpdump -d -i eth0
"tcp[2:2]>=1000 and tcp[2:2]<=2000"
(000) ldh      [12]
(001) jeq      #0x800           jt 2    jf 12
(002) ldb      [23]
(003) jeq      #0x6             jt 4    jf 12
(004) ldh      [20]
(005) jset     #0x1fff          jt 12   jf 6
(006) ldxb     4*([14]&0xf)
(007) ldh      [x + 16]
(008) ldx      #0x3e8
(009) jge      x                jt 10   jf 12
(010) jgt      x                jt 12   jf 11
(011) ret      #96
(012) ret      #0

...that sure looks like the optimizer bug in action (the "optimized" code is comparing against 0x3e8, i.e. 1000, but not against 2000).


I'm using libcap 0.8.3 which is the latest version
afaik.

It is the latest released version...

Don't know if it's bug-free though.

...and it's *definitely* not bug-free, as per the above. The current top-of-tree CVS version (and the "current tar files" version, which is a nightly snapshot of the top-of-tree CVS version) has that bug fixed.
-
This is the tcpdump-workers list.
Visit https://lists.sandelman.ca/ to unsubscribe.

Reply via email to