From owner-freebsd-bugs Tue Nov 25 18:50:10 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA05969 for bugs-outgoing; Tue, 25 Nov 1997 18:50:10 -0800 (PST) (envelope-from owner-freebsd-bugs) Received: (from gnats@localhost) by hub.freebsd.org (8.8.7/8.8.7) id SAA05936; Tue, 25 Nov 1997 18:50:01 -0800 (PST) (envelope-from gnats) Resent-Date: Tue, 25 Nov 1997 18:50:01 -0800 (PST) Resent-Message-Id: <199711260250.SAA05936@hub.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@FreeBSD.ORG, sclawson@marker.cs.utah.edu Received: from marker.cs.utah.edu (marker.cs.utah.edu [155.99.212.61]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id SAA05100 for ; Tue, 25 Nov 1997 18:42:17 -0800 (PST) (envelope-from sclawson@marker.cs.utah.edu) Received: (from sclawson@localhost) by marker.cs.utah.edu (8.8.8/8.8.5) id TAA24557; Tue, 25 Nov 1997 19:42:15 -0700 (MST) Message-Id: <199711260242.TAA24557@marker.cs.utah.edu> Date: Tue, 25 Nov 1997 19:42:15 -0700 (MST) From: stephen clawson Reply-To: sclawson@marker.cs.utah.edu To: FreeBSD-gnats-submit@FreeBSD.ORG X-Send-Pr-Version: 3.2 Subject: bin/5151: The addition of a call to issetugid() in libtermcap.so.2.1 breaks old binaries. Sender: owner-freebsd-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk >Number: 5151 >Category: bin >Synopsis: The addition of a call to issetugid() in libtermcap.so.2.1 breaks old binaries. >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Nov 25 18:50:01 PST 1997 >Last-Modified: >Originator: stephen clawson >Organization: University of Utah CSL >Release: FreeBSD 2.2.5-STABLE i386 >Environment: A 2.2-STABLE system (as of 11.25.97), with old user-compiled binaries from the 2.1-STABLE branch. >Description: A new function (issetugid()) is called from the latest libtermcap, but the version number wasn't bumped up so old binaries fail. The old programs are linked against libc.so.2.2 and libtermcap.so.2.1: libc.so.2.2 lives in /usr/lib/compat, but libtermcap.so.2.1 lives in /usr/lib. =( So the last time libtermcap was updated and installed, the old binaries pulled it in and died. tgetent() was trying to call issetugid(), which libc.so.2.2 dosen't have. >How-To-Repeat: Run the `resize' program from a 2.1 version of XFree86 (or any other program that uses termcap from 2.1) on a current 2.2-STABLE system (after 1997/11/21, when revision 1.7.2.1 of termcap.c was committed). ldd resize resize: -lgnumalloc.2 => /usr/lib/compat/libgnumalloc.so.2.0 (0x2001f000) -ltermcap.2 => /usr/lib/libtermcap.so.2.1 (0x20021000) -lc.2 => /usr/lib/compat/libc.so.2.2 (0x20025000) >Fix: Bump up the minor version number for libtermcap (like what was done in current), and add the old libtermcap into /usr/lib/compat. >Audit-Trail: >Unformatted: