From owner-freebsd-bugs@FreeBSD.ORG Sun Dec 21 12:30:17 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F1FD16A4CE for ; Sun, 21 Dec 2003 12:30:17 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05CD043D58 for ; Sun, 21 Dec 2003 12:30:12 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) hBLKUBFR059517 for ; Sun, 21 Dec 2003 12:30:11 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id hBLKUBWc059516; Sun, 21 Dec 2003 12:30:11 -0800 (PST) (envelope-from gnats) Resent-Date: Sun, 21 Dec 2003 12:30:11 -0800 (PST) Resent-Message-Id: <200312212030.hBLKUBWc059516@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Alfred Perlstein Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 22B3B16A4CE for ; Sun, 21 Dec 2003 12:29:21 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4DDE643D4C for ; Sun, 21 Dec 2003 12:29:20 -0800 (PST) (envelope-from alfred@FreeBSD.org) Received: from freefall.freebsd.org (alfred@localhost [127.0.0.1]) hBLKTKFR059462 for ; Sun, 21 Dec 2003 12:29:20 -0800 (PST) (envelope-from alfred@freefall.freebsd.org) Received: (from alfred@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id hBLKTKjr059461; Sun, 21 Dec 2003 12:29:20 -0800 (PST) (envelope-from alfred) Message-Id: <200312212029.hBLKTKjr059461@freefall.freebsd.org> Date: Sun, 21 Dec 2003 12:29:20 -0800 (PST) From: Alfred Perlstein To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/60477: need thread safe gethostent() and getservent() X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Alfred Perlstein List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Dec 2003 20:30:17 -0000 >Number: 60477 >Category: bin >Synopsis: need thread safe gethostent() and getservent() >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Dec 21 12:30:11 PST 2003 >Closed-Date: >Last-Modified: >Originator: Alfred Perlstein >Release: FreeBSD 4.9-STABLE i386 >Organization: RED, Inc. >Environment: System: FreeBSD freefall.freebsd.org 4.9-STABLE FreeBSD 4.9-STABLE #10: Wed Dec 10 19:46:23 PST 2003 kensmith@freefall.freebsd.org:/c/src/sys/compile/FREEFALL i386 >Description: Hard to write thread safe networking apps without reentrant versions of these function. >How-To-Repeat: >Fix: Use thread local storage to make these safe or... Implement gethostent_r and getservent_r, perferably from the http://publib16.boulder.ibm.com/pseries/en_US/libs/commtrf2/gethostent_r.htm specification, although or http://www.qnx.com/developer/docs/qnx_6.1_docs/neutrino/lib_ref/g/gethostent_r.html I feel that the one that Solaris and glibC offer are technically useless. I think that making them thread safe by using thread local data might also work reasonably well. >Release-Note: >Audit-Trail: >Unformatted: