A simple perl program (see attached) causes a kernel page fault Fix: -- Nigel Horne. Arranger, Composer, Conductor, Typesetter. Owner of the brass band group of the Internet. ICQ#20252325 njh@bandsman.co.uk http://www.bandsman.co.uk/music.htm How-To-Repeat: #!/usr/bin/perl -wT # To be run as root under FreeBSD # First do: ipfw add divert 9999 tcp from any to <ip> 3994 # Where <ip> is the IP address of the prodigy, e.g. 192.168.3.40 # You may need to reconfigure BSD first to support ipfw: # options IPFIREWALL # options IPDIVERT # options IPFIREWALL_FORWARD # options IPFIREWALL_VERBOSE # options IPFIREWALL_VERBOSE_LIMIT=100 # options IPFIREWALL_DEFAULT_TO_ACCEPT # options IPFILTER # options IPFILTER_LOG # options TCPDEBUG # options TCP_DROP_SYNFIN # options ICMP_BANDLIM # options DUMMYNET # options IPSTEALTH # # Then try telnet 192.168.3.40 3994, sit back and watch the output use strict; use Net::Divert; use NetPacket::IP; use NetPacket::TCP; my $ipFilter = Net::Divert->new('dev.gsec1.local', 9999); $ipFilter->getPackets(\&handler); sub handler { my($packet, $fwtag) = @_; my $ip = NetPacket::IP->decode($packet); if($ip->{proto} == NetPacket::IP->IP_PROTO_TCP) { my $tcp = NetPacket::TCP->decode($ip->{data}); print "source " . $tcp->{src_port} . " dest " . $tcp->{dest_port} . "\n"; # $tcp->{flags} |= SYN; # $tcp->{flags} &= ~ACK; # $tcp->{seqnum} = 0; $tcp->{data} = 'x' x 65535; $ip->{data} = $tcp->encode($ip); $packet = $ip->encode; } $ipFilter->putPacket($packet, $fwtag); }
Responsible Changed From-To: freebsd-bugs->silby I'd better look at this...
Reassign to the wild with permission of assignee. To submitter: is this report still valid?
Is this problem still relevant to any supported version of FreeBSD?