From owner-cvs-src-old@FreeBSD.ORG Sun Mar 27 19:57:20 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 513DB1065718 for ; Sun, 27 Mar 2011 19:57:20 +0000 (UTC) (envelope-from trociny@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3D64B8FC1C for ; Sun, 27 Mar 2011 19:57:20 +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 p2RJvK1q078610 for ; Sun, 27 Mar 2011 19:57:20 GMT (envelope-from trociny@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p2RJvK4t078609 for cvs-src-old@freebsd.org; Sun, 27 Mar 2011 19:57:20 GMT (envelope-from trociny@repoman.freebsd.org) Message-Id: <201103271957.p2RJvK4t078609@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to trociny@repoman.freebsd.org using -f From: Mikolaj Golub Date: Sun, 27 Mar 2011 19:56:55 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/geom/gate g_gate.c g_gate.h 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: Sun, 27 Mar 2011 19:57:20 -0000 trociny 2011-03-27 19:56:55 UTC FreeBSD src repository Modified files: sys/geom/gate g_gate.c g_gate.h Log: SVN rev 220062 on 2011-03-27 19:56:55Z by trociny In g_gate_create() there is a window between when g_gate_softc is registered in g_gate_units array and when its sc_provider field is filled. If during this period g_gate_units is accessed by another thread that is checking for provider name collision the crash is possible. Fix this by adding sc_name field to struct g_gate_softc. In g_gate_create() when g_gate_softc is created but sc_provider is still not sc_name points to provider name stored in the local array. Approved by: pjd (mentor) Reported by: Freddie Cash MFC after: 1 week Revision Changes Path 1.33 +5 -1 src/sys/geom/gate/g_gate.c 1.12 +1 -1 src/sys/geom/gate/g_gate.h