i386/62374: kernel panic: free: multiple frees
Roberto Trovo'
roberto at redix.it
Thu Feb 5 00:30:20 PST 2004
>Number: 62374
>Category: i386
>Synopsis: kernel panic: free: multiple frees
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-i386
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Thu Feb 05 00:30:14 PST 2004
>Closed-Date:
>Last-Modified:
>Originator: Roberto Trovo'
>Release: FreeBSD 4.9-RELEASE i386
>Organization:
>Environment:
System: FreeBSD microbsd 4.9-RELEASE FreeBSD 4.9-RELEASE #0: Mon Oct 27 17:51:09 GMT 2003 root at freebsd-stable.sentex.ca:/usr/obj/usr/src/sys/GENERIC i386
>Description:
FreeBSD 4.9-RELEASE
CPU: VIA EDEN 500MHz (MB CV860A)
RAM: 256MB
DISK: 128MB Compact Flash
No swap
3 10/100Mbit NIC, realteck on board
Bridge 020214 + ipf 3.4.31 enabled
Two NIC are configured in the bridge and ipf (transparent
filtering) filter the packets through the bridge.
sysctl -a:
net.link.ether.bridge_cfg: rl0:0,rl1:0
net.link.ether.bridge: 1
net.link.ether.bridge_ipfw: 0
net.link.ether.bridge_ipf: 1
net.link.ether.bridge_ipfw_drop: 0
net.link.ether.bridge_ipfw_collisions: 0
-----
The bridge connects two identical LAN with the same IPs but
filter some packet to protect the internal LAN.
Only the NIC on internal LAN is setup with a IP address.
A simple ipf rules are loaded:
block in log on rl1 all
block in log on rl0 all
pass in quick on rl1 proto udp from 192.168.0.0/16 port = 67 to 255.255.255.255 port = 68
pass in quick on rl1 proto udp from 192.168.0.0/16 port = 67 to 192.168.0.0/16 port = 68
pass in quick on rl1 proto tcp from 192.168.0.0/16 to 192.168.0.20/32 port = 9100
block in quick on rl1 from 10.0.0.0/8 to any
block in quick on rl1 from 172.16.0.0/12 to any
block in quick on rl1 from 192.168.0.0/16 to any
pass in quick on rl0 proto tcp from 192.168.0.0/16 to any keep state
pass in quick on rl0 proto udp from 192.168.0.0/16 to any keep state
pass in quick on rl0 proto icmp from 192.168.0.0/16 to any keep state
pass in quick on rl0 proto gre from 192.168.0.0/16 to any keep state
pass in quick on rl0 proto ip from 192.168.0.0/16 to any keep state
pass in quick on rl0 proto udp from 0.0.0.0 port = 68 to 255.255.255.255 port = 67
pass in quick on rl1 proto udp from 0.0.0.0 port = 67 to 255.255.255.255 port = 68
pass in quick on rl0 proto udp from 0.0.0.0 port = 68 to 192.168.0.0/16 port = 67
======= end ipf ruleset
>From internal LAN I've started a ping flooding on a host on the external LAN
passing through the bridge.
(ex. ping -f 192.168.0.1 )
In about 5 min. the system crash with the messages:
panic: free: multiple frees
syncing disk...
done
uptime: 4m51s
..
>How-To-Repeat:
I've repeated the same steps, and in all the test (3-4 times) the systems crash.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-i386
mailing list