[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [V3 PATCH 05/13] linux-user: Conditionally Pass Attribute Poi
From: |
Tom Musta |
Subject: |
[Qemu-ppc] [V3 PATCH 05/13] linux-user: Conditionally Pass Attribute Pointer to mq_open() |
Date: |
Wed, 13 Aug 2014 14:04:40 -0500 |
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 <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
linux-user/syscall.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 3a4f432..04f4820 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9081,12 +9081,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;
--
1.7.1
- [Qemu-ppc] [V3 PATCH 00/13] target-ppc: Linux-User Mode Bug Fixes for Power, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 01/13] linux-user: PPC64 semid_ds Doesnt Include _unused1 and _unused2, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 02/13] linux-user: Dereference Pointer Argument to ipc/semctl Sys Call, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 05/13] linux-user: Conditionally Pass Attribute Pointer to mq_open(),
Tom Musta <=
- [Qemu-ppc] [V3 PATCH 03/13] linux-user: Properly Handle semun Structure In Cross-Endian Situations, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 06/13] linux-user: Detect Negative Message Sizes in msgsnd System Call, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 04/13] linux-user: Make ipc syscall's third argument an abi_long, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 08/13] linux-user: Detect fault in sched_rr_get_interval, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 07/13] linux-user: Handle NULL sched_param argument to sched_*, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 11/13] linux-user: clock_nanosleep errno Handling on PPC, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 09/13] linux-user: Move get_ppc64_abi, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 10/13] linux-user: Minimum Sig Handler Stack Size for PPC64 ELF V2, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 13/13] linux-user: writev Partial Writes, Tom Musta, 2014/08/13
- [Qemu-ppc] [V3 PATCH 12/13] linux-user: Support target-to-host translation of mlockall argument, Tom Musta, 2014/08/13