From owner-cvs-src-old@FreeBSD.ORG Wed Jan 26 20:14:26 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B6421065673 for ; Wed, 26 Jan 2011 20:14:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5A4748FC23 for ; Wed, 26 Jan 2011 20:14:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p0QKEQWJ044494 for ; Wed, 26 Jan 2011 20:14:26 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p0QKEQ4x044493 for cvs-src-old@freebsd.org; Wed, 26 Jan 2011 20:14:26 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <201101262014.p0QKEQ4x044493@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Wed, 26 Jan 2011 20:14:03 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/lib/libc/stdio freopen.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Jan 2011 20:14:26 -0000 jhb 2011-01-26 20:14:03 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) lib/libc/stdio freopen.c Log: SVN rev 217899 on 2011-01-26 20:14:03Z by jhb MFC 216334: When reopening a stream backed by an open file descriptor, do not close the existing file descriptor. Instead, let dup2() atomically close the old file descriptor when assigning the newly opened file to the same descriptor. This closes a race in a multithreaded application where a concurrent open() could allocate the existing file descriptor in between the calls to close() and dup2(). Revision Changes Path 1.21.2.2 +9 -12 src/lib/libc/stdio/freopen.c