From patchwork Sun Jan 25 00:00:42 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chen Gang X-Patchwork-Id: 432451 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id AA5211401EB for ; Sun, 25 Jan 2015 10:53:36 +1100 (AEDT) Received: from localhost ([::1]:36437 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAWD-0005BT-Ph for incoming@patchwork.ozlabs.org; Sat, 24 Jan 2015 18:53:33 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAVw-0004r9-2y for qemu-devel@nongnu.org; Sat, 24 Jan 2015 18:53:17 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFAVr-0003cj-3L for qemu-devel@nongnu.org; Sat, 24 Jan 2015 18:53:16 -0500 Received: from out1134-243.mail.aliyun.com ([42.120.134.243]:45064) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAVq-0003ao-OX; Sat, 24 Jan 2015 18:53:11 -0500 X-Alimail-AntiSpam: AC=CONTINUE; BC=0.1411015|-1; FP=0|0|0|0|0|-1|-1|-1; HT=r41f05015; MF=gang.chen@sunrus.com.cn; PH=DS; RN=4; RT=4; SR=0; Received: from ShengShiZhuChengdeMacBook-Pro.local(mailfrom:gang.chen@sunrus.com.cn ip:223.72.65.8) by smtp.aliyun-inc.com(10.194.100.108); Sun, 25 Jan 2015 07:53:02 +0800 Message-ID: <54C4322A.3060704@sunrus.com.cn> Date: Sun, 25 Jan 2015 08:00:42 +0800 From: Chen Gang S User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: Peter Maydell , Riku Voipio X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 42.120.134.243 Cc: QEMU Trivial , qemu-devel Subject: [Qemu-devel] [PATCH v2] linux-user/syscall.c: Need call unlock_user() before go to failure return in default case X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org In abi_long do_ioctl_dm(), after calls lock_user(), it does not call unlock_user() before go to failure return in default case. Signed-off-by: Chen Gang --- linux-user/syscall.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index a427f7a..ec9e4fc 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -3566,6 +3566,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd, } default: ret = -TARGET_EINVAL; + unlock_user(argptr, guest_data, 0); goto out; } unlock_user(argptr, guest_data, 0); @@ -3685,6 +3686,7 @@ static abi_long do_ioctl_dm(const IOCTLEntry *ie, uint8_t *buf_temp, int fd, break; } default: + unlock_user(argptr, guest_data, 0); ret = -TARGET_EINVAL; goto out; }