Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp7147717ybi; Mon, 8 Jul 2019 15:36:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqxHr5PGL5ShU6aG7+pvLWWbkqqHzs4fYxNJtlVwUB/pp3JqYd4nktp+lkz1qRadzaOSltA6 X-Received: by 2002:a63:1316:: with SMTP id i22mr27332415pgl.274.1562625360547; Mon, 08 Jul 2019 15:36:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562625360; cv=none; d=google.com; s=arc-20160816; b=rnB4a2ssWlgBEMIBTsKejMHTUA9d3dJ3XQdOSSGxvFIk9I7+KXY4pvZeNREs8O8jxt wyF/2UrcoMqamK0OYF1P0cWH/rOERZhXieE2gCZJzv+S51Zy9x8FM9r3mr5sHYK5hGc9 RrNxDLbKMIsgIl8FASDywUqWs4f0UG1vqASK8Zr1fcYoW+0IXcNPDLDiu0QX48XluYhh eZD3csv/6qZuTciqV6UDD8UwpH948WkQaetCKPH7fSHprFwRs5UNz7ludwhMNzb+JLsu WRfcA/eGfaaGTeioV4U8Fi+LGXReAg7/6fjO1VGSeLD4BKPF7UWqIuQEerhL/PNLEHJK UGEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=2k81v0ilb45pQYHtlPs6mu8MSO4XIY+gRJ1R0MFSAeQ=; b=rZBoubSGpf67wtkfrbxj3hR7yH6acGjx2/CnNODwimcirM+KKrsPhQMcHGCa11rixz fkDq2fhffkA6QDfHSZWbOiv8+6Fe+STFd145SDhukV7ljbvGZ5Iq2Qx8twXzv+socz70 jVmF8BcJd+pOGUdrE1zSwvROut2jJzLKl17ufM0RjERZbF/tm1pPEdpp/lk/01T7cbyQ yHaASl88ou0nsPZQqrLrVe2Pr1oKyClwBGPEz9aT39XG+Ft5ED/hbOCBcU6mWqdkBr73 UEfiGaQLZf0rEjifKBQVRNvnGAXnu7iSapeGIWeKd7aQlKm+/CNCLEwGwY6ALeRCidTD 8URg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YvLhPkZa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t185si20515790pgd.596.2019.07.08.15.35.45; Mon, 08 Jul 2019 15:36:00 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=YvLhPkZa; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387454AbfGHPUg (ORCPT + 99 others); Mon, 8 Jul 2019 11:20:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:45548 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729759AbfGHPUd (ORCPT ); Mon, 8 Jul 2019 11:20:33 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id E535321537; Mon, 8 Jul 2019 15:20:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1562599232; bh=wvh3LrBsQmATHYkRfZFXApvS+JTaEHZnFdbh4tS2OXE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YvLhPkZaIABDwVmxOM1yHsaT1CaArlTJs3M/rMnkTaZj7YLqI3fGpaW/2y7WTaWPk n5lXM45QNcBvikCd37sOazCmHm9dBRnRwQxcrzP6+Dj5mNiZX9Y3xnju3gAJfwZ/Jc T0rzttxuvvc5/LsZq9jTj6lVX7CQWoNDpbnXtb9Y= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Hulk Robot , YueHaibing , Sasha Levin Subject: [PATCH 4.9 009/102] parport: Fix mem leak in parport_register_dev_model Date: Mon, 8 Jul 2019 17:12:02 +0200 Message-Id: <20190708150526.513882866@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190708150525.973820964@linuxfoundation.org> References: <20190708150525.973820964@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit 1c7ebeabc9e5ee12e42075a597de40fdb9059530 ] BUG: memory leak unreferenced object 0xffff8881df48cda0 (size 16): comm "syz-executor.0", pid 5077, jiffies 4295994670 (age 22.280s) hex dump (first 16 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000d2d0d5fe>] parport_register_dev_model+0x141/0x6e0 [parport] [<00000000782f6dab>] 0xffffffffc15d1196 [<00000000d2ca6ae4>] platform_drv_probe+0x7e/0x100 [<00000000628c2a94>] really_probe+0x342/0x4d0 [<000000006874f5da>] driver_probe_device+0x8c/0x170 [<00000000424de37a>] __device_attach_driver+0xda/0x100 [<000000002acab09a>] bus_for_each_drv+0xfe/0x170 [<000000003d9e5f31>] __device_attach+0x190/0x230 [<0000000035d32f80>] bus_probe_device+0x123/0x140 [<00000000a05ba627>] device_add+0x7cc/0xce0 [<000000003f7560bf>] platform_device_add+0x230/0x3c0 [<000000002a0be07d>] 0xffffffffc15d0949 [<000000007361d8d2>] port_check+0x3b/0x50 [parport] [<000000004d67200f>] bus_for_each_dev+0x115/0x180 [<000000003ccfd11c>] __parport_register_driver+0x1f0/0x210 [parport] [<00000000987f06fc>] 0xffffffffc15d803e After commit 4e5a74f1db8d ("parport: Revert "parport: fix memory leak""), free_pardevice do not free par_dev->state, we should free it in error path of parport_register_dev_model before return. Reported-by: Hulk Robot Fixes: 4e5a74f1db8d ("parport: Revert "parport: fix memory leak"") Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/parport/share.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/parport/share.c b/drivers/parport/share.c index 4399de34054a..daa2eb3050df 100644 --- a/drivers/parport/share.c +++ b/drivers/parport/share.c @@ -895,6 +895,7 @@ parport_register_dev_model(struct parport *port, const char *name, par_dev->devmodel = true; ret = device_register(&par_dev->dev); if (ret) { + kfree(par_dev->state); put_device(&par_dev->dev); goto err_put_port; } @@ -912,6 +913,7 @@ parport_register_dev_model(struct parport *port, const char *name, spin_unlock(&port->physport->pardevice_lock); pr_debug("%s: cannot grant exclusive access for device %s\n", port->name, name); + kfree(par_dev->state); device_unregister(&par_dev->dev); goto err_put_port; } -- 2.20.1