From svn at openbios.org Mon Dec 1 21:52:16 2014 From: svn at openbios.org (repository service) Date: Mon, 01 Dec 2014 21:52:16 +0100 Subject: [OpenBIOS] [commit] r1328 - trunk/openbios-devel/forth/device Message-ID: Author: mcayland Date: Mon Dec 1 21:52:15 2014 New Revision: 1328 URL: http://tracker.coreboot.org/trac/openbios/changeset/1328 Log: package.fs: fix "child" word being called with a NULL phandle Solaris 9 relies on an undocumented feature that calling "child" with a NULL phandle is equivalent to using the phandle of the device tree root node. Make sure that we emulate the same behaviour to avoid a crash when dereferencing a NULL pointer. This patch fixes Solaris 9 boot on SPARC32 and is based upon a proof-of-concept patch submitted by Artyom Tarasenko . Signed-off-by: Mark Cave-Ayland Modified: trunk/openbios-devel/forth/device/package.fs Modified: trunk/openbios-devel/forth/device/package.fs ============================================================================== --- trunk/openbios-devel/forth/device/package.fs Fri Nov 14 20:17:48 2014 (r1327) +++ trunk/openbios-devel/forth/device/package.fs Mon Dec 1 21:52:15 2014 (r1328) @@ -49,6 +49,10 @@ ; : child ( phandle.parent -- phandle.child ) + \ Assume phandle == 0 indicates root node (not documented but similar + \ behaviour to "peer"). Used by some versions of Solaris (e.g. 9). + ?dup if else device-tree @ then + >dn.child @ ;