From owner-svn-src-head@FreeBSD.ORG Mon Mar 30 08:39:43 2009 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 39C4A106566C; Mon, 30 Mar 2009 08:39:43 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 27DC98FC0C; Mon, 30 Mar 2009 08:39:43 +0000 (UTC) (envelope-from weongyo@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n2U8dhP5058272; Mon, 30 Mar 2009 08:39:43 GMT (envelope-from weongyo@svn.freebsd.org) Received: (from weongyo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n2U8dhnW058271; Mon, 30 Mar 2009 08:39:43 GMT (envelope-from weongyo@svn.freebsd.org) Message-Id: <200903300839.n2U8dhnW058271@svn.freebsd.org> From: Weongyo Jeong Date: Mon, 30 Mar 2009 08:39:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r190541 - head/sys/dev/malo X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Mar 2009 08:39:43 -0000 Author: weongyo Date: Mon Mar 30 08:39:42 2009 New Revision: 190541 URL: http://svn.freebsd.org/changeset/base/190541 Log: fix a bug of uses after free. Pointed by: dchagin MFC after: 3 days Modified: head/sys/dev/malo/if_malohal.c Modified: head/sys/dev/malo/if_malohal.c ============================================================================== --- head/sys/dev/malo/if_malohal.c Mon Mar 30 05:57:55 2009 (r190540) +++ head/sys/dev/malo/if_malohal.c Mon Mar 30 08:39:42 2009 (r190541) @@ -163,8 +163,6 @@ malo_hal_attach(device_t dev, uint16_t d return (mh); fail: - free(mh, M_DEVBUF); - if (mh->mh_dmamap != NULL) { bus_dmamap_unload(mh->mh_dmat, mh->mh_dmamap); if (mh->mh_cmdbuf != NULL) @@ -174,6 +172,7 @@ fail: } if (mh->mh_dmat) bus_dma_tag_destroy(mh->mh_dmat); + free(mh, M_DEVBUF); return (NULL); }