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