[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 15/24] linux-user: Conditionally Pass Attribute Point
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PULL 15/24] linux-user: Conditionally Pass Attribute Pointer to mq_open() |
Date: |
Fri, 15 Aug 2014 14:01:33 +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 07/24] linux-user: support timerfd_{create, gettime, settime} syscalls, (continued)
- [Qemu-devel] [PULL 07/24] linux-user: support timerfd_{create, gettime, settime} syscalls, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 11/24] linux-user: PPC64 semid_ds Doesnt Include _unused1 and _unused2, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 13/24] linux-user: Properly Handle semun Structure In Cross-Endian Situations, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 17/24] linux-user: Handle NULL sched_param argument to sched_*, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 05/24] linux-user: Fix conversion of sigevent argument to timer_create, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 14/24] linux-user: Make ipc syscall's third argument an abi_long, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 03/24] linux-user: make binfmt flag O require P, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 10/24] linux-user: add setns and unshare, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 08/24] linux-user: support ioprio_{get, set} syscalls, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 12/24] linux-user: Dereference Pointer Argument to ipc/semctl Sys Call, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 15/24] linux-user: Conditionally Pass Attribute Pointer to mq_open(),
riku . voipio <=
- [Qemu-devel] [PULL 24/24] linux-user: check return value of malloc(), riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 23/24] linux-user: writev Partial Writes, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 18/24] linux-user: Detect fault in sched_rr_get_interval, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 04/24] linux-user: Fix syscall instruction usermode emulation on X86_64, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 01/24] linux-user: /proc/self/maps content, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 22/24] linux-user: Support target-to-host translation of mlockall argument, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 19/24] linux-user: Move get_ppc64_abi, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 20/24] linux-user: Minimum Sig Handler Stack Size for PPC64 ELF V2, riku . voipio, 2014/08/15
- [Qemu-devel] [PULL 21/24] linux-user: clock_nanosleep errno Handling on PPC, riku . voipio, 2014/08/15
- Re: [Qemu-devel] [PULL 00/24] Linux-user updates, Peter Maydell, 2014/08/15