From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753968AbcLIOfP (ORCPT ); Fri, 9 Dec 2016 09:35:15 -0500 Received: from mout.web.de ([212.227.17.11]:51180 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751729AbcLIOfN (ORCPT ); Fri, 9 Dec 2016 09:35:13 -0500 Subject: [PATCH 1/4] staging: greybus: camera: One function call less in gb_camera_configure_streams() after error detection To: devel@driverdev.osuosl.org, Alex Elder , Greg Kroah-Hartman , Johan Hovold , Rui Miguel Silva References: Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Message-ID: <4e76f717-9382-f48f-afa4-b8b6982e327d@users.sourceforge.net> Date: Fri, 9 Dec 2016 15:34:49 +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: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:+LjOTNjhM4PERaoYtfa3wJLh9m+KlGABinlj35QETZOHiMnwfUz WCE69ucBYFHU5XtjEat4PJkOclxwVMIToALJk6p7w8odCF/7J6wezDV6DNvL6Cuhq4keRHR ZDLOm00lWB4E0iTCzucn8puT26g42fqpCzOfCU1t4WlRoF1qAdF6kRYnaCRa31H+XGOE8Ke 5mEnIucxwlC/dbiGC62Dg== X-UI-Out-Filterresults: notjunk:1;V01:K0:dObjSuhXM5E=:pYAxj8D3Rm95eu2i0Y2LB8 IDWx66OZWW0PuqL59FC8ir8PsVVSTlZbputMBjclywJYmZxp3uPEinmmVjTSEtEV0aXC4wDvj nLgZ6UCxBDehrNxeFCVrW9RUIRZjTJqmf8TxU8rDd1EU7NY3VeMBY1CGrZyGCuD45l4SRr5+2 qXwNfTqsgGYmBl+61cyJxXkLO1dikw18pRPQ/anO4lvhdKlA27ajD2gfY6Lg9DSzsbuVSwSUN OItw1SSZ06eVS3fiAsmih3hhhZ9SQs4MpL5GW4pvd6AjsTYmwArcOVw1lPKUNGjwmg6OallvS U3AZVLlreIayYuk75Jmotol2G95otSdctEnwEzuC1a11DMiYGkMQ9AjLfTe8HCNQIUUo4n9ZU +7O1m7nDDLvYlHFJdTSYHQrCwUZeLlGEPviT1W0K+230HZSx0kX/50PPOtZ8gJDB6J3tsRCDq exSUbfIm4QAmVkl6LY9d+F7NHzCy/phUT5Ejf0M/4mN9nyIB8HmrpMUGbSAo+TwCD3LebzWMy tnkUl5SNuXXRaEqQyDDisiepn1Xl2ZerIUErWs4P3Gs7PL3DLAnVmLfcCDxTTb6OguKrX4Lma K/RUgmJHjLSycDS4c8VpW+JaMnuTosdmbI3DPGTYb/TQ9SyFQaPI4UwXRgexz5xamzpkjK3YC Dj5zTE3RUlIi6UbEmrMjxb40AAr+2BgQOjcylzv0xP2Pb3ryIAwP441+lHUy15tETerNDLJzJ VIDilwcQgaIKhE7DOOdEpw/2H8XErsHlS9oxSuzepTGeeLFhHYpGuUhyE/bFGfGGzxmppHJgC 9aadP5g Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Thu, 8 Dec 2016 18:25:13 +0100 The kfree() function was called in one case by the gb_camera_configure_streams() function during error handling even if the passed variable contained a null pointer. This issue was detected by using the Coccinelle software. Adjust a jump target according to the Linux coding style convention. Fixes: 3265edaf0d70433699eece915fcca6509332c0e8 ("greybus: Add driver for the camera class protocol") Signed-off-by: Markus Elfring --- drivers/staging/greybus/camera.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c index 1c5b41ae6774..4479caed81bd 100644 --- a/drivers/staging/greybus/camera.c +++ b/drivers/staging/greybus/camera.c @@ -537,14 +537,15 @@ static int gb_camera_configure_streams(struct gb_camera *gcam, return -EINVAL; req_size = sizeof(*req) + nstreams * sizeof(req->config[0]); - resp_size = sizeof(*resp) + nstreams * sizeof(resp->config[0]); - req = kmalloc(req_size, GFP_KERNEL); - resp = kmalloc(resp_size, GFP_KERNEL); - if (!req || !resp) { - kfree(req); - kfree(resp); + if (!req) return -ENOMEM; + + resp_size = sizeof(*resp) + nstreams * sizeof(resp->config[0]); + resp = kmalloc(resp_size, GFP_KERNEL); + if (!resp) { + ret = -ENOMEM; + goto free_request; } req->num_streams = nstreams; @@ -647,8 +648,9 @@ static int gb_camera_configure_streams(struct gb_camera *gcam, done_skip_pm_put: mutex_unlock(&gcam->mutex); - kfree(req); kfree(resp); +free_request: + kfree(req); return ret; } -- 2.11.0