From frank@pinky.sax.de  Sat Jan 14 11:57:36 2006
Return-Path: <frank@pinky.sax.de>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 143BE16A41F
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 14 Jan 2006 11:57:36 +0000 (GMT)
	(envelope-from frank@pinky.sax.de)
Received: from pinky.frank-behrens.de (pinky.frank-behrens.de [82.139.199.24])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 4BC4C43D45
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 14 Jan 2006 11:57:35 +0000 (GMT)
	(envelope-from frank@pinky.sax.de)
Received: from moon.behrens (localhost [127.0.0.1])
	by pinky.frank-behrens.de (8.13.4/8.13.4) with ESMTP/MSA id k0EBvWsO003105
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 14 Jan 2006 12:57:32 +0100 (CET)
	(envelope-from frank@moon.behrens)
Received: (from frank@localhost)
	by moon.behrens (8.13.4/8.13.4/Submit) id k0EBvWe7003104;
	Sat, 14 Jan 2006 12:57:32 +0100 (CET)
	(envelope-from frank)
Message-Id: <200601141157.k0EBvWe7003104@moon.behrens>
Date: Sat, 14 Jan 2006 12:57:32 +0100 (CET)
From: Frank Behrens <frank@pinky.sax.de>
To: FreeBSD-gnats-submit@freebsd.org
Subject: rcorder(8) coredumps on dependency conflict
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         91789
>Category:       bin
>Synopsis:       rcorder(8) coredumps on dependency conflict
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    dougb
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jan 14 12:00:16 GMT 2006
>Closed-Date:    Tue Feb 07 00:26:33 GMT 2006
>Last-Modified:  Tue Feb 07 00:26:33 GMT 2006
>Originator:     Frank Behrens
>Release:        FreeBSD 6.0-STABLE-200601131811 i386
>Organization:
>Environment:
>Description:
rcorder(8) aborts with coredump when in a script REQUIRE and BEFORE
lines have the same entry.

Of course this is an error in the script itself, but rcorder should not abort.
In case of rcorder abort most of the system services are not started.

The error message is:
rcorder: Circular dependency on file `/etc/rc.d/NETWORKING'.
rcorder in free(): error: chunk is already free
Abort trap (core dumped)

>How-To-Repeat:
Run the following script:

#!/bin/sh

testscript=/etc/rc.d/testcrash
cat >$testscript << EOF
#!/bin/sh
# PROVIDE: test
# REQUIRE: NETWORK
# BEFORE: NETWORK
EOF
chmod +x $testscript
rcorder /etc/rc.d/*
rm $testscript

>Fix:
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->analyzed 
State-Changed-By: dougb 
State-Changed-When: Sun Jan 15 09:43:31 UTC 2006 
State-Changed-Why:  

This is being looked into, and a fix is being tested. 


Responsible-Changed-From-To: freebsd-bugs->dougb 
Responsible-Changed-By: dougb 
Responsible-Changed-When: Sun Jan 15 09:43:31 UTC 2006 
Responsible-Changed-Why:  

I'll manage the process of making sure this gets fixed. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=91789 

From: Divacky Roman <xdivac02@stud.fit.vutbr.cz>
To: bug-followup@FreeBSD.org
Cc:  
Subject: subject: Re: bin/91789: rcorder(8) coredumps on dependency conflict
Date: Sun, 15 Jan 2006 10:42:54 +0100

 this patch fixes it:
 
 Index: rcorder.c
 ===================================================================
 RCS file: /home/ncvs/src/sbin/rcorder/rcorder.c,v
 retrieving revision 1.1.1.2
 diff -u -r1.1.1.2 rcorder.c
 --- rcorder.c	21 Jun 2002 15:56:16 -0000	1.1.1.2
 +++ rcorder.c	15 Jan 2006 09:39:35 -0000
 @@ -753,7 +753,8 @@
  		r_tmp = r;
  		satisfy_req(r, fnode->filename);
  		r = r->next;
 -		free(r_tmp);
 +		if (was_set == 0)
 +			free(r_tmp);		   
  	}
  	fnode->req_list = NULL;
  
 @@ -792,8 +793,10 @@
  	}
  
  	DPRINTF((stderr, "nuking %s\n", fnode->filename));
 -	free(fnode->filename);
 -	free(fnode);
 +	if (was_set == 0) {
 +   		free(fnode->filename);
 +   		free(fnode);
 +	}
  }
  
  void
State-Changed-From-To: analyzed->patched 
State-Changed-By: dougb 
State-Changed-When: Tue Jan 17 07:41:00 UTC 2006 
State-Changed-Why:  

I just committed the fix for this to HEAD, will MFC 
before the upcoming releases. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=91789 
State-Changed-From-To: patched->closed 
State-Changed-By: dougb 
State-Changed-When: Tue Feb 7 00:25:44 UTC 2006 
State-Changed-Why:  

I MFC'ed this fix to RELENG_[56] on 25 January, 
but forgot to close this report.  

Thanks again for bringing this to our attention. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=91789 
>Unformatted:
