amd64/163710: setjump in userboot.so causes stack corruption

Russell Cattelan cattelan at thebarn.com
Fri Mar 16 22:00:11 UTC 2012


The following reply was made to PR amd64/163710; it has been noted by GNATS.

From: Russell Cattelan <cattelan at thebarn.com>
To: Peter Wemm <peter at wemm.org>
Cc: freebsd-gnats-submit at freebsd.org
Subject: Re: amd64/163710: setjump in userboot.so causes stack corruption
Date: Fri, 16 Mar 2012 16:50:19 -0500

 This is a multi-part message in MIME format.
 --------------020407050203000600090705
 Content-Type: text/plain; charset=ISO-8859-1
 Content-Transfer-Encoding: 7bit
 
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
 On 3/16/12 3:51 PM, Peter Wemm wrote:
 > 2012/3/16 Russell Cattelan <cattelan at thebarn.com>:
 >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
 >> 
 >> On 3/16/12 11:56 AM, Peter Wemm wrote:
 >>> On Thu, Mar 15, 2012 at 2:40 PM, Russell Cattelan 
 >>> <cattelan at thebarn.com> wrote:
 >>>> The following reply was made to PR amd64/163710; it has been 
 >>>> noted by GNATS.
 >>> [..]
 >>>> Does the last patch seem acceptable?
 >>>> 
 >>>> Can we close this issue out?
 >>> 
 >>> Sadly not,
 >>> 
 >>> +no-machine: + rm -f   ${.CURDIR}/../../ficl/machine
 >>> 
 >>> .. this is definitely bogus no matter what. This attempts to 
 >>> modify the source tree which may be read only, and should
 >>> never even have a "machine->..." symlink in it to remove in the
 >>> first place.
 >> The sym link is created by the build of ficl for the loader. See:
 >> boot/ficl/Makefile machine: ln -sf ${.CURDIR}/../../i386/include
 >> machine
 >> 
 >> Are you suggesting that is incorrect and should be fixed?
 > 
 > No, you're reading it wrong: "ln -sf ${.CURDIR}/../../i386/include
 > machine" creates ${.OBJDIR}/machine"
 > 
 > Your patch does a "rm -f   ${.CURDIR}/../../ficl/machine" which is
 > in the source tree, not the obj tree, so it would never exist.  And
 > if it does, then something is wrong with your build environment.
 > 
 This is pretty easy to reproduce.
 cd /sys/boot
 make
 
 there will be a symlink in /sys/boot/ficl/machine that points to
 i386/include.
 
 If that link exists and userboot is rebuilt.
 e.g.
 cd /sys/boot/userboot
 make
 
 will end up with a userboot.so with an ficl that has been built with
 32bit headers and thus have the wrong size structure for setjmp.
 
 - -Russell
 
 
 
 
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (Darwin)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
 
 iEYEARECAAYFAk9jtZsACgkQNRmM+OaGhBgVZACggjJYocX+OfI/5Fh2s4nuKFAJ
 xXQAnRXKoKqx1eM3enbv/ebTMIU7UIuQ
 =GSzJ
 -----END PGP SIGNATURE-----
 
 --------------020407050203000600090705
 Content-Type: text/x-vcard; charset=utf-8;
  name="cattelan.vcf"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="cattelan.vcf"
 
 begin:vcard
 fn:Russell Cattelan
 n:Cattelan;Russell
 email;internet:cattelan at thebarn.com
 tel;cell:612 805 3144
 x-mozilla-html:FALSE
 version:2.1
 end:vcard
 
 
 --------------020407050203000600090705--


More information about the freebsd-amd64 mailing list