From patchwork Fri Aug 22 13:24:31 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Riku Voipio X-Patchwork-Id: 35811 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-pa0-f69.google.com (mail-pa0-f69.google.com [209.85.220.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id B823720540 for ; Fri, 22 Aug 2014 13:33:32 +0000 (UTC) Received: by mail-pa0-f69.google.com with SMTP id kx10sf85502886pab.0 for ; Fri, 22 Aug 2014 06:33:32 -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=jF3okbRGgygB0HHr8056EL5dW1Msf2YKW6sSBvkeVMU=; b=jLMd8zcqrzQ6S1NE7XXQRiD5f41Pf+wpsbIc8RCvnxkMn5lgF3cr7/09Axiaa1/ChZ cmr6ArxKC263LyJouOR9q0KvZhC6qGHKEdX0aTqzi6DBOi4Gck6/gzLNfKaWoLHo8SBY X9Riicb/3SjU2GzLqam5McmuwtUfR61AGnqR1g6/8O9TzUBsC+yctOrb3Lt/djR127jT ZJsLaSoyFKYj4oWYOKNx13SacKzpXNSpxCKjkULO6f4298qfdU5Y8sA4aXEkjkrdvv6n F8kDhkvq6YTHCNpTRCqsHfB5J6q3UzhBLpj8B1ZwytULF/KWr2FzzkikP/GPb6fpBNha AqEA== X-Gm-Message-State: ALoCoQm0nFupeBqz4wPWrQqbfrTvzGb9iex8bQSHnk1AT1D60EBUfxT4WBH+/mnZiWLRTvjvIAo1 X-Received: by 10.66.147.227 with SMTP id tn3mr3513995pab.4.1408714412047; Fri, 22 Aug 2014 06:33:32 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.25.80 with SMTP id 74ls1149516qgs.63.gmail; Fri, 22 Aug 2014 06:33:31 -0700 (PDT) X-Received: by 10.52.239.35 with SMTP id vp3mr53230vdc.87.1408714411936; Fri, 22 Aug 2014 06:33:31 -0700 (PDT) Received: from mail-vc0-f177.google.com (mail-vc0-f177.google.com [209.85.220.177]) by mx.google.com with ESMTPS id ga5si13560215vdb.79.2014.08.22.06.33.31 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 22 Aug 2014 06:33:31 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.177 as permitted sender) client-ip=209.85.220.177; Received: by mail-vc0-f177.google.com with SMTP id hy4so12003747vcb.8 for ; Fri, 22 Aug 2014 06:33:31 -0700 (PDT) X-Received: by 10.220.15.8 with SMTP id i8mr191943vca.45.1408714411636; Fri, 22 Aug 2014 06:33:31 -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.45.67 with SMTP id uj3csp17244vcb; Fri, 22 Aug 2014 06:33:31 -0700 (PDT) X-Received: by 10.140.42.10 with SMTP id b10mr7292479qga.82.1408714410589; Fri, 22 Aug 2014 06:33:30 -0700 (PDT) Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id 4si42244519qaa.86.2014.08.22.06.33.30 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 22 Aug 2014 06:33:30 -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]:37142 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKoy9-0000Sc-Tj for patch@linaro.org; Fri, 22 Aug 2014 09:33:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKopr-0006bE-Ga for qemu-devel@nongnu.org; Fri, 22 Aug 2014 09:25:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XKoph-0002DE-Al for qemu-devel@nongnu.org; Fri, 22 Aug 2014 09:24:55 -0400 Received: from [2001:4b98:dc0:45:216:3eff:fe3d:166f] (port=54456 helo=afflict.kos.to) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKoph-0002B8-55 for qemu-devel@nongnu.org; Fri, 22 Aug 2014 09:24:45 -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 0D98326589; Fri, 22 Aug 2014 15:24:43 +0200 (CEST) From: riku.voipio@linaro.org To: Peter Maydell , qemu-devel@nongnu.org Date: Fri, 22 Aug 2014 16:24:31 +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: 2001:4b98:dc0:45:216:3eff:fe3d:166f Cc: Tom Musta Subject: [Qemu-devel] [PULL v3 13/22] 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.177 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 fa8ba8f..e754dbb 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9115,12 +9115,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;