Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jan 1998 14:50:37 +0900 (JST)
From:      amagai@nue.org
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   docs/5443: Man page bpf(4), buggy example program
Message-ID:  <199801060550.OAA03574@celis.nue.org>
Resent-Message-ID: <199801082231.OAA09531@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         5443
>Category:       docs
>Synopsis:       Man page bpf(4), buggy example program
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          doc-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan  8 14:31:32 PST 1998
>Last-Modified:
>Originator:     AMAGAI Yoshiji
>Organization:
New Unified Environment Project
>Release:        FreeBSD 2.2.5-RELEASE i386
>Environment:

	Pentium II 300MHz, ASUS P2L97-S, 128MByte MM

>Description:

	Example program in man page bpf(4) contain problems.  
	this statement load two bytes of data, 
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 26),
	and compare it to four bytes constant.
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 2),

     This filter accepts only IP packets between host 128.3.112.15 and
     128.3.112.35.

     struct bpf_insn insns[] = {
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_IP, 0, 8),
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 26),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 2),
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 30),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 3, 4),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 0, 3),
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 30),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 1),
             BPF_STMT(BPF_RET+BPF_K, (u_int)-1),
             BPF_STMT(BPF_RET+BPF_K, 0),
     };

>How-To-Repeat:

	

>Fix:
	
     This filter accepts only IP packets between host 128.3.112.15 and
     128.3.112.35.

     struct bpf_insn insns[] = {
             BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_IP, 0, 8),
             BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 26),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 2),
             BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 30),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 3, 4),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 0, 3),
             BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 30),
             BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 1),
             BPF_STMT(BPF_RET+BPF_K, (u_int)-1),
             BPF_STMT(BPF_RET+BPF_K, 0),
     };


>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801060550.OAA03574>