From patchwork Tue Feb 11 10:03:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 3625891 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 235FE9F382 for ; Tue, 11 Feb 2014 10:05:03 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4F0CB201F4 for ; Tue, 11 Feb 2014 10:05:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A40AD20203 for ; Tue, 11 Feb 2014 10:04:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750767AbaBKKE5 (ORCPT ); Tue, 11 Feb 2014 05:04:57 -0500 Received: from mailout4.w1.samsung.com ([210.118.77.14]:22473 "EHLO mailout4.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751469AbaBKKD5 (ORCPT ); Tue, 11 Feb 2014 05:03:57 -0500 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N0T00FTOTAJ2600@mailout4.w1.samsung.com>; Tue, 11 Feb 2014 10:03:55 +0000 (GMT) X-AuditID: cbfec7f5-b7fc96d000004885-97-52f9f5893cab Received: from eusync2.samsung.com ( [203.254.199.212]) by eucpsbgm2.samsung.com (EUCPMTA) with SMTP id 5B.DA.18565.985F9F25; Tue, 11 Feb 2014 10:03:53 +0000 (GMT) Received: from AMDC1943.digital.local ([106.116.151.171]) by eusync2.samsung.com (Oracle Communications Messaging Server 7u4-23.01(7.0.4.23.0) 64bit (built Aug 10 2011)) with ESMTPA id <0N0T00L9UTAB6610@eusync2.samsung.com>; Tue, 11 Feb 2014 10:03:53 +0000 (GMT) From: Krzysztof Kozlowski To: Sangbeom Kim , Samuel Ortiz , Lee Jones , linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org Cc: Kyungmin Park , Marek Szyprowski , Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski , stable@vger.kernel.org Subject: [PATCH 7/7] mfd: max8998: Fix possible NULL pointer dereference on i2c_new_dummy error Date: Tue, 11 Feb 2014 11:03:35 +0100 Message-id: <1392113015-11180-7-git-send-email-k.kozlowski@samsung.com> X-Mailer: git-send-email 1.7.9.5 In-reply-to: <1392113015-11180-1-git-send-email-k.kozlowski@samsung.com> References: <1392113015-11180-1-git-send-email-k.kozlowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDJMWRmVeSWpSXmKPExsVy+t/xK7qdX38GGcxtN7fYOGM9q8XrF4YW Z5vesFvc/3qU0eLyrjlsFjPO72OyWHvkLrvF6W5Wi4srvjBZLNj4iNGBy+POtT1sHvNOBnr0 bVnF6PF5k1wASxSXTUpqTmZZapG+XQJXxqLz65kKLnBUTJp5gL2BcSZ7FyMnh4SAicTZxt+s ELaYxIV769m6GLk4hASWMkpsvHsPLCEk0Mck0dGiD2KzCRhLbF6+BKxIRGAzo8Ti71dZQRxm gbuMEs133zOCVAkLJEqsXjqBDcRmEVCVWLnwK9A6Dg5eAXeJH3f9QUwJAQWJOZNsQCo4BTwk Vnw4wwyxy12itf8u6wRG3gWMDKsYRVNLkwuKk9JzjfSKE3OLS/PS9ZLzczcxQkLs6w7Gpces DjEKcDAq8fBqfP0RJMSaWFZcmXuIUYKDWUmEV+n4zyAh3pTEyqrUovz4otKc1OJDjEwcnFIN jBlXqyYUVLmmrtm0mXvvIQN5JZeS4801jruvdNYqhE0O7z7R9P/7We3cPUdOR7azP2jcszCP xdRL5HlH7d0j1mcuB2j1ZyqfOr7t7ZaDBRMWpCw8UHNE7EyxVXRGfse3WrtID7YJSxdezVFq FJi8wurDeTuH+Pmnxbd67LZeKrnQexHPTdcXokosxRmJhlrMRcWJAJ1a9oIPAgAA Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP During probe the driver allocates dummy I2C device for RTC with i2c_new_dummy() but it does not check the return value of this call. In case of error (i2c_new_device(): memory allocation failure or I2C address cannot be used) this function returns NULL which is later used by i2c_unregister_device(). If i2c_new_dummy() fails for RTC device, fail also the probe for main MFD driver. Signed-off-by: Krzysztof Kozlowski Cc: stable@vger.kernel.org --- drivers/mfd/max8998.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mfd/max8998.c b/drivers/mfd/max8998.c index 612ca404e150..61ea1826f8b4 100644 --- a/drivers/mfd/max8998.c +++ b/drivers/mfd/max8998.c @@ -215,6 +215,10 @@ static int max8998_i2c_probe(struct i2c_client *i2c, mutex_init(&max8998->iolock); max8998->rtc = i2c_new_dummy(i2c->adapter, RTC_I2C_ADDR); + if (!max8998->rtc) { + dev_err(&i2c->dev, "Failed to allocate I2C device for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(max8998->rtc, max8998); max8998_irq_init(max8998);