From owner-cvs-src-old@FreeBSD.ORG Wed Jan 26 20:14:32 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 6128F1065749 for ; Wed, 26 Jan 2011 20:14:32 +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 4FC2C8FC14 for ; Wed, 26 Jan 2011 20:14:32 +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 p0QKEWfB044513 for ; Wed, 26 Jan 2011 20:14:32 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p0QKEWCS044512 for cvs-src-old@freebsd.org; Wed, 26 Jan 2011 20:14:32 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <201101262014.p0QKEWCS044512@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:12 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_7 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:32 -0000 jhb 2011-01-26 20:14:12 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) lib/libc/stdio freopen.c Log: SVN rev 217900 on 2011-01-26 20:14:12Z 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.18.2.2 +9 -12 src/lib/libc/stdio/freopen.c