From owner-cvs-src@FreeBSD.ORG Fri Dec 16 02:50:54 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8F0DE16A41F; Fri, 16 Dec 2005 02:50:54 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F364443D67; Fri, 16 Dec 2005 02:50:53 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jBG2or2e026057; Fri, 16 Dec 2005 02:50:53 GMT (envelope-from davidxu@repoman.freebsd.org) Received: (from davidxu@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jBG2orZE026056; Fri, 16 Dec 2005 02:50:53 GMT (envelope-from davidxu) Message-Id: <200512160250.jBG2orZE026056@repoman.freebsd.org> From: David Xu Date: Fri, 16 Dec 2005 02:50:53 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/lib/libc/stdio fread.c local.h vfscanf.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Dec 2005 02:50:54 -0000 davidxu 2005-12-16 02:50:53 UTC FreeBSD src repository Modified files: lib/libc/stdio fread.c local.h vfscanf.c Log: With current pthread implementations, a mutex initialization will allocate a memory block. sscanf calls __svfscanf which in turn calls fread, fread triggers mutex initialization but the mutex is not destroyed in sscanf, this leads to memory leak. To avoid the memory leak and performance issue, we create a none MT-safe version of fread: __fread, and instead let __svfscanf call __fread. PR: threads/90392 Patch submitted by: dhartmei MFC after: 7 days Revision Changes Path 1.13 +16 -7 src/lib/libc/stdio/fread.c 1.28 +2 -1 src/lib/libc/stdio/local.h 1.39 +1 -1 src/lib/libc/stdio/vfscanf.c