bin/63405: make dumps core
Chris Pressey
cpressey at catseye.mine.nu
Mon Mar 15 16:10:05 PST 2004
The following reply was made to PR bin/63405; it has been noted by GNATS.
From: Chris Pressey <cpressey at catseye.mine.nu>
To: freebsd-gnats-submit at FreeBSD.org, hsn at netmag.cz
Cc:
Subject: Re: bin/63405: make dumps core
Date: Mon, 15 Mar 2004 16:06:48 -0800
This is a multi-part message in MIME format.
--Multipart=_Mon__15_Mar_2004_16_06_48_-0800_K5uBXaHLgD87mT7a
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Hi,
This problem is exhibited on FreeBSD 4.9 as well. It appears to stem
from a NULL pointer dereference. Please review the attached patch.
-Chris
--Multipart=_Mon__15_Mar_2004_16_06_48_-0800_K5uBXaHLgD87mT7a
Content-Type: text/plain;
name="suff.c.diff"
Content-Disposition: attachment;
filename="suff.c.diff"
Content-Transfer-Encoding: 7bit
--- suff.c.orig Thu Mar 8 17:13:24 2001
+++ suff.c Mon Mar 15 16:02:16 2004
@@ -379,7 +379,12 @@
Lst l;
Suff *s;
{
- LstNode ln = Lst_Member(l, (ClientData)s);
+ LstNode ln;
+
+ if (s == NULL)
+ return;
+
+ ln = Lst_Member(l, (ClientData)s);
if (ln != NILLNODE) {
Lst_Remove(l, ln);
s->refCount--;
@@ -683,12 +688,14 @@
* We'll be called twice when the next target is seen, but .c and .o
* are only linked once...
*/
- SuffRemove(t->children, s);
+ if (t != NULL)
+ SuffRemove(t->children, s);
/*
* Remove the target from the source's parents list
*/
- SuffRemove(s->parents, t);
+ if (s != NULL)
+ SuffRemove(s->parents, t);
} else if ((gn->type & OP_TRANSFORM) && DEBUG(SUFF)) {
printf("transformation %s complete\n", gn->name);
}
--Multipart=_Mon__15_Mar_2004_16_06_48_-0800_K5uBXaHLgD87mT7a--
More information about the freebsd-bugs
mailing list