[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 14/23] linux-user: Conditionally Pass Attribute Po
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PULL v2 14/23] linux-user: Conditionally Pass Attribute Pointer to mq_open() |
Date: |
Tue, 19 Aug 2014 11:32:49 +0300 |
From: Tom Musta <address@hidden>
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>
Signed-off-by: Riku Voipio <address@hidden>
---
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;
--
2.0.1
- [Qemu-devel] [PULL v2 06/23] linux-user: support timerfd_{create, gettime, settime} syscalls, (continued)
- [Qemu-devel] [PULL v2 06/23] linux-user: support timerfd_{create, gettime, settime} syscalls, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 10/23] linux-user: PPC64 semid_ds Doesnt Include _unused1 and _unused2, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 04/23] linux-user: Fix conversion of sigevent argument to timer_create, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 01/23] linux-user: /proc/self/maps content, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 16/23] linux-user: Handle NULL sched_param argument to sched_*, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 13/23] linux-user: Make ipc syscall's third argument an abi_long, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 17/23] linux-user: Detect fault in sched_rr_get_interval, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 15/23] linux-user: Detect Negative Message Sizes in msgsnd System Call, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 20/23] linux-user: clock_nanosleep errno Handling on PPC, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 23/23] linux-user: check return value of malloc(), riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 14/23] linux-user: Conditionally Pass Attribute Pointer to mq_open(),
riku . voipio <=
- [Qemu-devel] [PULL v2 18/23] linux-user: Move get_ppc64_abi, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 22/23] linux-user: writev Partial Writes, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 21/23] linux-user: Support target-to-host translation of mlockall argument, riku . voipio, 2014/08/19
- [Qemu-devel] [PULL v2 19/23] linux-user: Minimum Sig Handler Stack Size for PPC64 ELF V2, riku . voipio, 2014/08/19
- Re: [Qemu-devel] [PULL v2 00/23] linux-user updates, Peter Maydell, 2014/08/19