From nobody  Tue Feb  4 17:25:48 1997
Received: (from nobody@localhost)
          by freefall.freebsd.org (8.8.5/8.8.5) id RAA07495;
          Tue, 4 Feb 1997 17:25:48 -0800 (PST)
Message-Id: <199702050125.RAA07495@freefall.freebsd.org>
Date: Tue, 4 Feb 1997 17:25:48 -0800 (PST)
From: rob@ugh.net.au
To: freebsd-gnats-submit@freebsd.org
Subject: ppp hangs with recursive malloc() call
X-Send-Pr-Version: www-1.0

>Number:         2662
>Category:       bin
>Synopsis:       ppp hangs with recursive malloc() call
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    brian
>State:          closed
>Quarter:
>Keywords:
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb  4 17:30:01 PST 1997
>Closed-Date:    Thu Mar 13 07:07:02 PST 1997
>Last-Modified:  Thu Mar 13 07:11:24 PST 1997
>Originator:     Rob Wise
>Release:        2.2-970202-GAMMA
>Organization:
>Environment:
FreeBSD 2.2-970202-GAMMA #0: Mon Feb  3 22:12:36 EST 1997      root@WonK.hobart.TASed.EDU.AU:/usr/sys/src/compile/WONK
>Description:
After ppp has been connected and running for a while (usually about a
day) it hangs with the message:
ppp in malloc(): warning: recursive call.
The only thing it will respond to is kill -9.
>How-To-Repeat:
Leave ppp connected for a while.
This problem also existed in 2.2-BETA and BETA_A.
>Fix:

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: jkh 
Responsible-Changed-When: Tue Feb 4 18:23:31 PST 1997 
Responsible-Changed-Why:  
ppp is Brian's baby. 
State-Changed-From-To: open->closed 
State-Changed-By: brian 
State-Changed-When: Tue Feb 18 17:14:53 PST 1997 
State-Changed-Why:  
All signal handlers are now invoked from main.c rather than 
at the time of the signal.  Recursion is therefore, in theory, 
impossible. 
State-Changed-From-To: closed->open 
State-Changed-By: ache 
State-Changed-When: Sat Mar 8 09:28:54 PST 1997 
State-Changed-Why:  
Re-open again because the fix was wrong. 
It is bad pracice to pend alarm tics, because 'sometimes letter' 
can be 'never' for pending action. 
To be exact, the fix cause dead unkillable loop after carried drop. 
State-Changed-From-To: open->closed 
State-Changed-By: brian 
State-Changed-When: Thu Mar 13 07:07:02 PST 1997 
State-Changed-Why:  
The pending signal stuff has been put back and agreed by myself and 
ache@freebsd.org. 
>Unformatted:
I've adjusted ppp so that it does all signal handling from main.c.
The signal traps to a function that remembers that it's got to do
something later, the "something later" is done before & after
the select() call.
