From owner-freebsd-current Tue Oct 1 06:02:34 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id GAA16025 for current-outgoing; Tue, 1 Oct 1996 06:02:34 -0700 (PDT) Received: from spinner.DIALix.COM (root@spinner.DIALix.COM [192.203.228.67]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id GAA16020; Tue, 1 Oct 1996 06:02:24 -0700 (PDT) Received: from spinner.DIALix.COM (peter@localhost.DIALix.oz.au [127.0.0.1]) by spinner.DIALix.COM (8.8.0/8.8.0) with ESMTP id VAA15470; Tue, 1 Oct 1996 21:02:15 +0800 (WST) Message-Id: <199610011302.VAA15470@spinner.DIALix.COM> X-Mailer: exmh version 1.6.7 5/3/96 To: sos@freebsd.org cc: current@freebsd.org Subject: Re: WARNING: botched ld.so commit! :-( In-reply-to: Your message of "Tue, 01 Oct 1996 14:50:01 +0200." <199610011250.OAA25083@ra.dkuug.dk> Date: Tue, 01 Oct 1996 21:02:15 +0800 From: Peter Wemm <peter@spinner.DIALix.COM> Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk sos@freebsd.org wrote: > In reply to Peter Wemm who wrote: > > > > It's been pointed out to me that I managed to royally screw up my commit > > to the rtld/ld.so code, in just about the worst possible way on the only > > file in the entire system that's vulnerable to this type of screwup. > > > Damn, where is that pointy hat, damn who had it last ?? :) :) Yeah, especially considering the only two tools that can easily fix it are dynamically linked :-( (chflags and install). In case it's any help to anybody, I've uploaded a static linked chflags executable (and a working ld.so) to ftp://freefall.freebsd.org/pub/peter/*. /bin/rcp is statically linked on most FreeBSD systems, so getting executables to a nearby machine may be enough to get out of the jam. Oh, another thought.. from a root login: # /bin/mv /usr/libexec /usr/libexec.fubar # /bin/mkdir /usr/libexec # /bin/cp /whereever/ld.so /usr/libexec # chflags noschg /usr/libexec.fubar/ld.so # cp /wherever/ld.so /usr/libexec.fubar # mv /usr/libexec /usr/libexec.fresh # mv /usr/libexec.fubar /usr/libexec (I think I'll leave for Antarctica before anybody catches me... :-] ) -Peter