From owner-freebsd-current Fri May 7 9:16:17 1999 Delivered-To: freebsd-current@freebsd.org Received: from spinner.netplex.com.au (spinner.netplex.com.au [202.12.86.3]) by hub.freebsd.org (Postfix) with ESMTP id 7226315273 for ; Fri, 7 May 1999 09:15:49 -0700 (PDT) (envelope-from peter@netplex.com.au) Received: from netplex.com.au (localhost [127.0.0.1]) by spinner.netplex.com.au (Postfix) with ESMTP id 3EFE21F72; Sat, 8 May 1999 00:15:36 +0800 (WST) (envelope-from peter@netplex.com.au) X-Mailer: exmh version 2.0.2 2/24/98 To: "Jordan K. Hubbard" Cc: current@FreeBSD.ORG Subject: Re: somebody has broken sysctlbyname() in -current In-reply-to: Your message of "Fri, 07 May 1999 06:49:31 MST." <99200.926084971@zippy.cdrom.com> Date: Sat, 08 May 1999 00:15:36 +0800 From: Peter Wemm Message-Id: <19990507161541.3EFE21F72@spinner.netplex.com.au> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG "Jordan K. Hubbard" wrote: > > sysctlbyname("machdep.uc_devlist", buf, &len, NULL, NULL); > > Sorry for the vague first bug report; I hadn't collected a reasonable > crashdump yet. It's in sysctl_machdep_uc_devlist(), specifically > where it copies id->id_driver->name into a temporary stack variable. > First time through, this thing's NULL and *boom* we're gone. I'm > looking into it. Urk. You are right. The problem is that id_driver is a wild pointer. It was pointing to an entry in a malloc'ed array that was built to make isadev->id_driver->name work for userconfig. After the exit of userconfig, these tables are freed up, but the uc_devlist stuff still contains a pointer to the original &isa_drvtab[i]; which is long gone... Cheers, -Peter To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message