From patchwork Fri Mar 1 00:43:12 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Stultz X-Patchwork-Id: 15172 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 5270C23E1A for ; Fri, 1 Mar 2013 00:44:07 +0000 (UTC) Received: from mail-vb0-f50.google.com (mail-vb0-f50.google.com [209.85.212.50]) by fiordland.canonical.com (Postfix) with ESMTP id EC0A5A1959D for ; Fri, 1 Mar 2013 00:44:06 +0000 (UTC) Received: by mail-vb0-f50.google.com with SMTP id ft2so271539vbb.23 for ; Thu, 28 Feb 2013 16:44:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-forwarded-to:x-forwarded-for:delivered-to:x-received :received-spf:x-received:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:x-gm-message-state; bh=9zGtcDNWqHo9N2ufMLCvRsyN5YvO7LklL1EIyO9IWGM=; b=dkkvkMfEKSkOS1PNc2obcBBSRp4AIl47cUSOiYgu3ER7J4rdiUBZZQkGVKw3iacHv2 xSUfG8Uft6xk+kwLacN1TTMJP8esty3oELMTW6QABa7zYSqtLrf+BHedd1Uz7IgmZjme 2HcWgEAtxgabiczHh9UmCghtquxmSq7pbYFPxMGiUbki1hESp0vmvxN46WEkuNgyfdEg ckLozrk29iwmHMxfr6X/E/zDz11tOTSn2OFhEjd7eJH3+mvBNHs16vcMHFYj9gDiUQ2w We1JhLc6dk+WpdsMPzGUUcPLs1iPyE6m6QnRRgO/vIJKiyXkEDlvmZLlnHYXac2ucVIU CCfA== X-Received: by 10.220.214.6 with SMTP id gy6mr3295928vcb.8.1362098646465; Thu, 28 Feb 2013 16:44:06 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.58.145.101 with SMTP id st5csp656veb; Thu, 28 Feb 2013 16:44:06 -0800 (PST) X-Received: by 10.66.162.41 with SMTP id xx9mr16194644pab.168.1362098645667; Thu, 28 Feb 2013 16:44:05 -0800 (PST) Received: from mail-pb0-f53.google.com (mail-pb0-f53.google.com [209.85.160.53]) by mx.google.com with ESMTPS id xu6si10640940pab.95.2013.02.28.16.44.05 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 28 Feb 2013 16:44:05 -0800 (PST) Received-SPF: neutral (google.com: 209.85.160.53 is neither permitted nor denied by best guess record for domain of john.stultz@linaro.org) client-ip=209.85.160.53; Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.160.53 is neither permitted nor denied by best guess record for domain of john.stultz@linaro.org) smtp.mail=john.stultz@linaro.org Received: by mail-pb0-f53.google.com with SMTP id un1so1386868pbc.12 for ; Thu, 28 Feb 2013 16:44:05 -0800 (PST) X-Received: by 10.66.176.170 with SMTP id cj10mr16307926pac.32.1362098645212; Thu, 28 Feb 2013 16:44:05 -0800 (PST) Received: from localhost.localdomain (c-24-21-54-107.hsd1.or.comcast.net. [24.21.54.107]) by mx.google.com with ESMTPS id dx17sm10914892pac.17.2013.02.28.16.44.03 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 28 Feb 2013 16:44:04 -0800 (PST) From: John Stultz To: lkml Cc: Rebecca Schultz Zavin , Maarten Lankhorst , Erik Gilling , Daniel Vetter , Rob Clark , Sumit Semwal , Greg KH , dri-devel@lists.freedesktop.org, Android Kernel Team , John Stultz Subject: [PATCH 16/30] staging: sync: Fix error paths Date: Thu, 28 Feb 2013 16:43:12 -0800 Message-Id: <1362098606-26469-17-git-send-email-john.stultz@linaro.org> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1362098606-26469-1-git-send-email-john.stultz@linaro.org> References: <1362098606-26469-1-git-send-email-john.stultz@linaro.org> X-Gm-Message-State: ALoCoQm5PMiSvRSpkf6fyQeLC/kQpPtBOHIc2tr1mif22BjNiO063m7nidfXHdZo0Jf1iFFTXjHC From: Rebecca Schultz Zavin Check the return value of get_unused_fd to make sure a valid file descriptor is returned. Make sure to call put_unused_fd even if an error occurs before the fd can be used. Cc: Maarten Lankhorst Cc: Erik Gilling Cc: Daniel Vetter Cc: Rob Clark Cc: Sumit Semwal Cc: Greg KH Cc: dri-devel@lists.freedesktop.org Cc: Android Kernel Team Signed-off-by: Rebecca Schultz Zavin Signed-off-by: John Stultz --- drivers/staging/android/sync.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c index 61c27bd..c4a3c1d 100644 --- a/drivers/staging/android/sync.c +++ b/drivers/staging/android/sync.c @@ -647,8 +647,13 @@ static long sync_fence_ioctl_merge(struct sync_fence *fence, unsigned long arg) struct sync_fence *fence2, *fence3; struct sync_merge_data data; - if (copy_from_user(&data, (void __user *)arg, sizeof(data))) - return -EFAULT; + if (fd < 0) + return fd; + + if (copy_from_user(&data, (void __user *)arg, sizeof(data))) { + err = -EFAULT; + goto err_put_fd; + } fence2 = sync_fence_fdget(data.fd2); if (fence2 == NULL) {