tcpdump mailing list archives
Re: pcap_compile() errors in libpcap beta and CVS
From: George Bakos <gbakos () ists dartmouth edu>
Date: Sun, 21 Dec 2003 00:38:10 -0500
I agree, this is not the true root of the problem, merely a symptom fix. However, reverting to break statements preserves all of the fixes provided in Yamamoto's patch, and makes the examples I provided work properly. A similar case that is still not handled properly is: tcpdump 'len=len' is always true tcpdump 'len=0 or len=len' should also be true, but fails thusly: (000) ld #pktlen (001) jeq #0x0 jt 3 jf 2 (002) jeq x jt 3 jf 4 (003) ret #68 (004) ret #0 When I compile without any peep ahead, it behaves properly in all cases. :-p I'll keep working on the optimizer, but suggest using the patch I supplied for the time being, to get rid of most of the problem if this is to be released. Is there a standard set of filters, as well as a data file & result set for compile & optimize regression testing? g On Wed, 17 Dec 2003 10:04:39 -0800 Guy Harris <guy () alum mit edu> wrote:
I've been looking at this - there is, I think, an optimizer bug elsewhere, and his change might merely have exposed that bug. I haven't tracked it down yet, however. (It's converting the "false" branch of one jeq to go to the "ret #0" when it shouldn't be. This might also be the cause of a bug in the libpcap bug database on SourceForge.) His changes fix some other problems: Date: Thu, 25 Apr 2002 07:20:47 +0900 (JST) To: patches () tcpdump org Subject: some fixes for complier and optimizer in libpcap From: YAMAMOTO Takashi <yamt () mwd biglobe ne jp> I made patches for libpcap. it includes: - make tcpdump "1 > 1" works correctly. - make things unsigned as in-kernel filter does. - fix a bug that prevents optimization. (and might cause bad codes) eg. "1 & len == 1" - fix wrong optimizations. eg. "0 >> len == 1", "0 - len == 1"
-- George Bakos Institute for Security Technology Studies - IRIA Dartmouth College gbakos () ists dartmouth edu 603.646.0665 -voice 603.646.0666 -fax - This is the TCPDUMP workers list. It is archived at http://www.tcpdump.org/lists/workers/index.html To unsubscribe use mailto:tcpdump-workers-request () tcpdump org?body=unsubscribe
Current thread:
- pcap_compile() errors in libpcap beta and CVS George Bakos (Dec 10)
- Re: pcap_compile() errors in libpcap beta and CVS George Bakos (Dec 17)
- Re: pcap_compile() errors in libpcap beta and CVS Guy Harris (Dec 17)
- Re: pcap_compile() errors in libpcap beta and CVS George Bakos (Dec 21)
- Re: pcap_compile() errors in libpcap beta and CVS Guy Harris (Dec 21)
- Re: pcap_compile() errors in libpcap beta and CVS George Bakos (Dec 21)
- Re: pcap_compile() errors in libpcap beta and CVS Guy Harris (Dec 21)
- Re: pcap_compile() errors in libpcap beta and CVS Guy Harris (Dec 17)
- Re: pcap_compile() errors in libpcap beta and CVS George Bakos (Dec 17)