From patchwork Fri Aug 15 11:01:33 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Riku Voipio X-Patchwork-Id: 35438 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-yh0-f71.google.com (mail-yh0-f71.google.com [209.85.213.71]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 43C88203C5 for ; Fri, 15 Aug 2014 11:07:45 +0000 (UTC) Received: by mail-yh0-f71.google.com with SMTP id 29sf7150680yhl.6 for ; Fri, 15 Aug 2014 04:07:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:date :message-id:in-reply-to:references:cc:subject:precedence:list-id :list-unsubscribe:list-archive:list-post:list-help:list-subscribe :errors-to:sender:x-original-sender :x-original-authentication-results:mailing-list; bh=E+etlYh5vArzCsMUBeVYOoayV5nnHr0pDPvrt+SLYHQ=; b=D54XievSVvQOMksCsN6EdNYO80orTT/G7KvZKb7h7k2HpS89Eg99mqPDwFfHTiFNFb Hfua9kB7f8xH1jaVcUl5Pzs08t0GxgE2iEBehHGiXZeXT1XRR8QdbVmLAsj0Rg6BkS3a mgoxaxAJX6M3FUKhysUidH78PQh56iwkcMtRYQr6HXQbJI5PlSGkbeoMcgWd8XvUmG4M DlMyADwPUGPl7rtiZEE9XWbI2UAGZvKYEO1k4DKzoPZTZaWJiP+SfsQJglxgCiw4w00t ol5nTRz6JyqWRuq+jGm8hNXleOL7bWI+Ymbkd1ldV5t6rzwM0MCoPEFBVXLIqbBX+5Dn GcoQ== X-Gm-Message-State: ALoCoQkKWkJIyhj0vdYb+UaKIAV7bTADAD/i/rI2Uqo202otrYNw0y1ak8LOIP6DlViRt6e3HpAu X-Received: by 10.236.118.37 with SMTP id k25mr5468174yhh.1.1408100865090; Fri, 15 Aug 2014 04:07:45 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.41.11 with SMTP id y11ls1372726qgy.23.gmail; Fri, 15 Aug 2014 04:07:45 -0700 (PDT) X-Received: by 10.140.49.77 with SMTP id p71mr24751400qga.86.1408100865015; Fri, 15 Aug 2014 04:07:45 -0700 (PDT) Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com [209.85.220.182]) by mx.google.com with ESMTPS id x9si11329238qal.104.2014.08.15.04.07.44 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 15 Aug 2014 04:07:45 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.182 as permitted sender) client-ip=209.85.220.182; Received: by mail-vc0-f182.google.com with SMTP id hy4so2795761vcb.13 for ; Fri, 15 Aug 2014 04:07:44 -0700 (PDT) X-Received: by 10.220.74.195 with SMTP id v3mr9707747vcj.23.1408100864746; Fri, 15 Aug 2014 04:07:44 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.37.5 with SMTP id tc5csp104296vcb; Fri, 15 Aug 2014 04:07:44 -0700 (PDT) X-Received: by 10.140.27.144 with SMTP id 16mr24609539qgx.18.1408100864180; Fri, 15 Aug 2014 04:07:44 -0700 (PDT) Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id t6si11360329qak.29.2014.08.15.04.07.44 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 15 Aug 2014 04:07:44 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Received: from localhost ([::1]:58582 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XIFMF-0005e3-Ju for patch@linaro.org; Fri, 15 Aug 2014 07:07:43 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39477) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XIFGg-0004xO-P3 for qemu-devel@nongnu.org; Fri, 15 Aug 2014 07:02:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XIFGV-00073A-2X for qemu-devel@nongnu.org; Fri, 15 Aug 2014 07:01:58 -0400 Received: from afflict.kos.to ([92.243.29.197]:57609) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XIFGU-00072D-Tj for qemu-devel@nongnu.org; Fri, 15 Aug 2014 07:01:47 -0400 Received: from afflict.kos.to (afflict [92.243.29.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by afflict.kos.to (Postfix) with ESMTPSA id 1510426646; Fri, 15 Aug 2014 13:01:45 +0200 (CEST) From: riku.voipio@linaro.org To: qemu-devel@nongnu.org Date: Fri, 15 Aug 2014 14:01:33 +0300 Message-Id: X-Mailer: git-send-email 1.7.10.4 In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 92.243.29.197 Cc: Peter Maydell , Tom Musta Subject: [Qemu-devel] [PULL 15/24] linux-user: Conditionally Pass Attribute Pointer to mq_open() 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: riku.voipio@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.182 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 From: Tom Musta The mq_open system call takes an optional struct mq_attr pointer argument in the fourth position. This pointer is used when O_CREAT is specified in the flags (second) argument. It may be NULL, in which case the queue is created with implementation defined attributes. Change the code to properly handle the case when NULL is passed in the arg4 position. Signed-off-by: Tom Musta Reviewed-by: Peter Maydell Signed-off-by: Riku Voipio --- linux-user/syscall.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index db40829..c9a9d3d 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9185,12 +9185,16 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, #if defined(TARGET_NR_mq_open) && defined(__NR_mq_open) case TARGET_NR_mq_open: { - struct mq_attr posix_mq_attr; + struct mq_attr posix_mq_attr, *attrp; p = lock_user_string(arg1 - 1); - if (arg4 != 0) + if (arg4 != 0) { copy_from_user_mq_attr (&posix_mq_attr, arg4); - ret = get_errno(mq_open(p, arg2, arg3, &posix_mq_attr)); + attrp = &posix_mq_attr; + } else { + attrp = 0; + } + ret = get_errno(mq_open(p, arg2, arg3, attrp)); unlock_user (p, arg1, 0); } break;