From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753484AbdA3Nf2 (ORCPT ); Mon, 30 Jan 2017 08:35:28 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:41043 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752272AbdA3NfO (ORCPT ); Mon, 30 Jan 2017 08:35:14 -0500 X-AuditID: b6c32a2d-f79836d00000138e-18-588f40f153bf Subject: Re: [alsa-devel] [PATCH] Sound: soc: samsung - Fix possible NULL derefrence. To: Shailendra Verma , p.shailesh@samsung.com, ashish.kalra@samsung.com, Shailendra Verma Cc: Krzysztof Kozlowski , Sangbeom Kim , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org From: Sylwester Nawrocki Message-id: <0adef6d5-13bd-5e08-ca53-c8a5969578a2@samsung.com> Date: Mon, 30 Jan 2017 14:34:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-version: 1.0 In-reply-to: <1485752659-30185-1-git-send-email-shailendra.v@samsung.com> Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBKsWRmVeSWpSXmKPExsWy7bCmlu5Hh/4Igw3NuhZXLh5isrg/7Ru7 xdSHT9gszp/fwG7x7UoHk8XlXXPYLHZMaWWx6NzVz2pxccUXJotb82ayWSz69orZYsP3tYwO PB4bPjexeeycdZfdY9OqTjaPfW+XsXn0bVnF6LF+y1UWj8+b5ALYo7hsUlJzMstSi/TtErgy Zq2ezFjQyFfxqeEBewPjNu4uRk4OCQETiclNr9ghbDGJC/fWs4HYQgJLGSX+bGftYuQCstuZ JD7NnMEK07D03h82iMRyRonrM7ZAOfcZJU7ev8sMUiUsEC7R9/ggWEJEYBqjxO11t8EcZoGp TBIr+iYzglSxCRhK9B7tA7N5Bewk3l1uAetmEVCV2H59OROILSoQIXHo2G1miBpBiR+T77GA 2JwCnhIt26aDHc4sYCAxY8phJghbXmLzmrfMIMskBO6xSzTfXwy0gAPIkZXYdIAZwnSRaLrv AfGOsMSr41ug/peW+Lv0FiNEaz+jxIk1zVDODEaJO+0TmCCqrCUOH7/ICrGMT6L39xMmiKG8 Eh1tQhAlHhJvLs9ig7AdJdZ+esEMCaI5jBJHG6+yTGCUn4Xkn1lIfpiF5IcFjMyrGMVSC4pz 01OLTQuM9IoTc4tL89L1kvNzNzGC05OW7g7GLwu8DzEKcDAq8fAGnOiLEGJNLCuuzD3EKMHB rCTCO8miP0KINyWxsiq1KD++qDQntfgQozQHi5I474IK6wghgfTEktTs1NSC1CKYLBMHp1QD Y8zbctdEBoeQzQx1lpNPuSre2iWlJ/A8RWabrx+fv7yDzaKvbPUHVokXLOxquP7frH5+4dQA 5pm2B0L/nt/ysIkr4ZXcpo1LGQ4o/BRed3nz/1miazunL7KyFX3i9/Nz9myzzaVtHmfdWsO5 jV76PeJJbRDddLVs4o3LrXorecu+x16w2vFWRYmlOCPRUIu5qDgRAIw+ZgRLAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOIsWRmVeSWpSXmKPExsVy+t9jAd0PDv0RBgtu61tcuXiIyeL+tG/s FlMfPmGzOH9+A7vFtysdTBaXd81hs9gxpZXFonNXP6vFxRVfmCxuzZvJZrHo2ytmiw3f1zI6 8Hhs+NzE5rFz1l12j02rOtk89r1dxubRt2UVo8f6LVdZPD5vkgtgj3KzyUhNTEktUkjNS85P ycxLt1UKDXHTtVBSyEvMTbVVitD1DQlSUihLzCkF8owM0ICDc4B7sJK+XYJbxqzVkxkLGvkq PjU8YG9g3MbdxcjJISFgIrH03h82CFtM4sK99WC2kMBSRomlmyy7GLmA7IeMEs1LOllBEsIC 4RJ9jw+ygSREBKYxSky8fpsZomoeo8T6mc/BMswCU5kk5i/czwjSwiZgKNF7tA/M5hWwk3h3 uYUZxGYRUJXYfn05UxcjB4eoQIREw+F0iBJBiR+T77GA2JwCnhIt26azg5QwC+hJ3L+oBRJm FpCX2LzmLfMERoFZSDpmIVTNQlK1gJF5FaNEakFyQXFSeq5RXmq5XnFibnFpXrpecn7uJkZw pD6T3sF4eJf7IUYBDkYlHt4Fh/sihFgTy4orcw8xSnAwK4nwTrLojxDiTUmsrEotyo8vKs1J LT7EaAr0xURmKdHkfGASySuJNzQxNzE3NrAwt7Q0MVIS522c/SxcSCA9sSQ1OzW1ILUIpo+J g1OqgZHD63eDypYFvQFnbv9198ys/CTDtPieT2R+fIx3jtjB0Guc/rVfoxivP9NcWWBwZ/rc r79nMa3vvF2r7P3Q3zPhzjrlvQbLEnoFT/N0Sca75V7zWnHJZ76CUKu4xc7UPXlnleI7L33a 9tA8crv07t//ZMJCimY6vRaJUPxXZ62vG+Dm3bUzX4mlOCPRUIu5qDgRAGoToO7qAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170130133440epcas5p4f9f92ae7cf68edcc0f6129ef221dc853 X-Msg-Generator: CA X-Sender-IP: 203.254.230.27 X-Local-Sender: =?UTF-8?B?U3lsd2VzdGVyIE5hd3JvY2tpG1NSUE9MLUtlcm5lbCAoVFAp?= =?UTF-8?B?G+yCvOyEseyghOyekBtTZW5pb3IgU29mdHdhcmUgRW5naW5lZXI=?= X-Global-Sender: =?UTF-8?B?U3lsd2VzdGVyIE5hd3JvY2tpG1NSUE9MLUtlcm5lbCAoVFAp?= =?UTF-8?B?G1NhbXN1bmcgRWxlY3Ryb25pY3MbU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 105P X-HopCount: 7 X-CMS-RootMailID: 20170130050433epcas3p158c643fc3cba0b3b616dc24a50e11bc0 X-RootMTR: 20170130050433epcas3p158c643fc3cba0b3b616dc24a50e11bc0 References: <1485752659-30185-1-git-send-email-shailendra.v@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/30/2017 06:04 AM, Shailendra Verma wrote: > of_device_get_match_data could return NULL, and so can cause > a NULL pointer dereference later. > > Signed-off-by: Shailendra Verma > --- > sound/soc/samsung/i2s.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c > index 7825bff..b5acce2 100644 > --- a/sound/soc/samsung/i2s.c > +++ b/sound/soc/samsung/i2s.c > @@ -1224,8 +1224,13 @@ static int samsung_i2s_probe(struct platform_device *pdev) > const struct samsung_i2s_dai_data *i2s_dai_data; > int ret; > > - if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) > + if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) { > i2s_dai_data = of_device_get_match_data(&pdev->dev); > + if (!i2s_dai_data) { > + dev_err(&pdev->dev, "no device match found\n"); > + return -ENODEV; > + } > + } As Javier commented on similar patch for gpu/drm/exynos i2s_dai_data can't be NULL as for DT case all struct of_device_id::data entries are initialized in this driver and the probe callback can only be called when device's compatible string got matched with one of entries in the OF device id table. > else > i2s_dai_data = (struct samsung_i2s_dai_data *) > platform_get_device_id(pdev)->driver_data; > Similarly in non-dt case all struct_device_id::driver_data entries are initialized so i2s_dai_data normally also cannot be NULL here. If we were adding a sanity check for i2s_dai_data, it would need to be here to cover both dt and non-dt. I don't think this patch is necessary. The error log above is slightly misleading as actual device/driver matching happens already before probe() is called. -- Thanks, Sylwester