Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Apr 1996 21:52:32 +0200 (MET DST)
From:      Andreas Klemm <andreas@knobel.gun.de>
To:        current@FreeBSD.org
Subject:   Re: rc.firewall has some syntax errors and sample config hangs machine
Message-ID:  <Pine.BSF.3.92.960408214953.571A-100000@knobel.gun.de>
In-Reply-To: <Pine.BSF.3.92.960408170210.210A-100000@knobel.gun.de>

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

-----BEGIN PGP SIGNED MESSAGE-----

On Mon, 8 Apr 1996, Andreas Klemm wrote:

Here again, this time with kgdb trace...

"panic: free: multiple frees"

This was my firewall config;

#! /bin/sh

/sbin/ipfw flush

# no restriction
# /sbin/ipfw add 65000 pass all from any to any

# Only in rare cases do you want to change this rule
/sbin/ipfw add 1000 pass all from 127.0.0.1 to 127.0.0.1

if true ; then
    # set these to your outside interface network and netmask and ip
    oif="tun0"
    onet="192.109.159.0"
    omask="255.255.255.0"
    oip="192.109.159.141"

    # set these to your inside interface network and netmask and ip
    iif="ed0"
    inet="149.237.250.0"
    imask="255.255.255.0"
    iip="149.237.250.1"

    # Stop spoofing
    /sbin/ipfw add deny all from ${inet}:${imask} to any via ${oif}
    /sbin/ipfw add deny all from ${onet}:${omask} to any via ${iif}

    # Stop RFC1918 nets on the outside interface
    /sbin/ipfw add deny all from 192.168.0.0:255.255.0.0 to any via ${oif}
    /sbin/ipfw add deny all from 172.16.0.0:255.240.0.0 to any via ${oif}
    /sbin/ipfw add deny all from 10.0.0.0:255.0.0.0 to any via ${oif}

    # Allow TCP through if setup succeeded
    /sbin/ipfw add deny tcp from any to any established

    # Allow setup of incoming email
    /sbin/ipfw add pass tcp from any to ${oip} 25 setup

    # Allow access to our DNS
    /sbin/ipfw add pass tcp from any to ${oip} 53 setup

    # Allow access to our WWW
    /sbin/ipfw add pass tcp from any to ${oip} 80 setup

    # Reject&Log all setup of incoming connections from the outside
    /sbin/ipfw add deny log tcp from any to any via ${oif} setup

    # Allow setup of any other TCP connection
    /sbin/ipfw add pass tcp from any to any setup

    # Allow DNS queries out in the world
    /sbin/ipfw add pass udp from any 53 to ${oip}
    /sbin/ipfw add pass udp from ${oip} to any 53

    # Allow NTP queries out in the world
    /sbin/ipfw add pass udp from any 123 to ${oip}
    /sbin/ipfw add pass udp from ${oip} to any 123

    # Everyting else is denied as default.
fi


IdlePTD a1f000
current pcb at 1d42c0
panic: free: multiple frees
#0  boot (howto=260) at ../../i386/i386/machdep.c:940
940                                     dumppcb.pcb_ptd = rcr3();
(kgdb) bt
#0  boot (howto=260) at ../../i386/i386/machdep.c:940
#1  0xf01188b7 in panic (fmt=0xf01011d8 "from debugger")
    at ../../kern/subr_prf.c:133
#2  0xf01011f5 in db_panic (dummy1=-266856653, dummy2=0, dummy3=-1,
    dummy4=0xefbffdf0 "") at ../../ddb/db_command.c:395
#3  0xf01010de in db_command (last_cmdp=0xf01bfb34, cmd_table=0xf01bf994)
    at ../../ddb/db_command.c:288
#4  0xf010125d in db_command_loop () at ../../ddb/db_command.c:417
#5  0xf01035c8 in db_trap (type=3, code=0) at ../../ddb/db_trap.c:73
#6  0xf018150a in kdb_trap (type=3, code=0, regs=0xefbffeec)
    at ../../i386/i386/db_interface.c:136
#7  0xf0188e3c in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = -266528644,
      tf_esi = -267319602, tf_ebp = -272629968, tf_isp = -272629996,
      tf_ebx = 256, tf_edx = -266856699, tf_ecx = 2000, tf_eax = 18,
      tf_trapno = 3, tf_err = 0, tf_eip = -266856653, tf_cs = 8,
      tf_eflags = 582, tf_esp = -266856715, tf_ss = -267286450})
    at ../../i386/i386/trap.c:399
#8  0xf0181d81 in calltrap ()
#9  0xf01188ae in panic (fmt=0xf01106ce "free: multiple frees")
    at ../../kern/subr_prf.c:129
#10 0xf01107af in free (addr=0xf1762380, type=1)
    at ../../kern/kern_malloc.c:344
#11 0xf0125ab6 in m_freem (m=0xf1762300) at ../../kern/uipc_mbuf.c:245
- ---Type <return> to continue, or q <return> to quit---
#12 0xf0145684 in ip_input (m=0xf1762300) at ../../netinet/ip_input.c:435
#13 0xf01456f0 in ipintr () at ../../netinet/ip_input.c:453
#14 0xf018309d in swi_net_next ()
#15 0x821b in ?? ()
#16 0x8639 in ?? ()
#17 0x18f9 in ?? ()
#18 0xd19b in ?? ()
#19 0xc65d in ?? ()
#20 0x1096 in ?? ()

(kgdb) up 10
#10 0xf01107af in free (addr=0xf1762380, type=1)
    at ../../kern/kern_malloc.c:344
344                             panic("free: multiple frees");

(kgdb) list
339     #endif /* DIAGNOSTIC */
340     #ifdef KMEMSTATS
341             kup->ku_freecnt++;
342             if (kup->ku_freecnt >= kbp->kb_elmpercl)
343                     if (kup->ku_freecnt > kbp->kb_elmpercl)
344                             panic("free: multiple frees");
345                     else if (kbp->kb_totalfree > kbp->kb_highwat)
346                             kbp->kb_couldfree++;
347             kbp->kb_totalfree++;
348             ksp->ks_memuse -= size;

(kgdb) print kup->ku_freecnt
There is no member named ku_freecnt.
(kgdb) print kbp->kb_elmpercl
$1 = 32


Hope, this helps...

	Andreas ///

- --
andreas@knobel.gun.de         /\/\___      Wiechers & Partner Datentechnik GmbH
   Andreas Klemm          ___/\/\/         $$  Support Unix - aklemm@wup.de  $$
pgp p-key  http://www-swiss.ai.mit.edu/~bal/pks-toplev.html  >>> powered by <<<
ftp://sunsite.unc.edu/pub/Linux/system/Printing/aps-491.tgz  >>>    FreeBSD <<<

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCVAwUBMWlugfMLpmkD/U+FAQEjZwP8DfZudd1vZcJoU5Z3tfduKpD4FGZzLF/R
E4poIzv6k7yqXZ85Eydp21UyUa++CcXJ4Dj96IODg/rxS/dvaBPjwz+0NwBb7oAd
SLEog6fiW+9QmjB4o1o/fj+DT6P/gVNNW+rIBE4eRYPQvI0468rsKkxMhVxfZv/A
7xmBPOECszc=
=5laC
-----END PGP SIGNATURE-----




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.92.960408214953.571A-100000>