Hello community, here is the log from the commit of package qemu for openSUSE:Factory checked in at Tue Sep 27 16:07:06 CEST 2011.
-------- --- qemu/qemu.changes 2011-06-20 11:26:04.000000000 +0200 +++ /mounts/work_src_done/STABLE/qemu/qemu.changes 2011-09-26 17:54:48.000000000 +0200 @@ -1,0 +2,5 @@ +Mon Sep 26 15:53:41 UTC 2011 - [email protected] + +- add fix from alex for openat file permission handling + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- 0019-linux-user-fix-openat.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qemu.spec ++++++ --- /var/tmp/diff_new_pack.evYKIf/_old 2011-09-27 16:07:02.000000000 +0200 +++ /var/tmp/diff_new_pack.evYKIf/_new 2011-09-27 16:07:02.000000000 +0200 @@ -43,6 +43,7 @@ Patch16: 0016-fix-mipsn32-linux-user-builds.patch Patch17: 0017-S-390-build-fix.patch Patch18: 0018-qemu-0.14.1-mcast-udp.patch +Patch19: 0019-linux-user-fix-openat.patch # this is to make lint happy Source300: rpmlintrc BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -104,6 +105,7 @@ %endif %patch16 -p1 %patch18 -p1 +%patch19 -p1 %build # build QEMU ++++++ 0019-linux-user-fix-openat.patch ++++++ >From 39c6bee3d5023a3e339bafd8073bc2c920cd79c5 Mon Sep 17 00:00:00 2001 From: Alexander Graf <[email protected]> Date: Sun, 25 Sep 2011 06:21:28 +0200 Subject: [PATCH] linux-user: fix openat When running openat using qemu-arm, we stumbled over invalid permissions on the created files. The reason for this is that the mode parameter gets treates as an O_... flag, which it isn't - it's a permission bitmask. This patch removes the needless translation of the mode parameter, rendering permission passing of openat() to work with linux-user. Reported-by: Dirk Mueller <[email protected]> Signed-off-by: Alexander Graf <[email protected]> --- linux-user/syscall.c | 14 +------------- 1 files changed, 1 insertions(+), 13 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 6b73769..27970a4 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -376,25 +376,13 @@ static int sys_mknodat(int dirfd, const char *pathname, mode_t mode, } #endif #ifdef TARGET_NR_openat -static int sys_openat(int dirfd, const char *pathname, int flags, ...) +static int sys_openat(int dirfd, const char *pathname, int flags, mode_t mode) { /* * open(2) has extra parameter 'mode' when called with * flag O_CREAT. */ if ((flags & O_CREAT) != 0) { - va_list ap; - mode_t mode; - - /* - * Get the 'mode' parameter and translate it to - * host bits. - */ - va_start(ap, flags); - mode = va_arg(ap, mode_t); - mode = target_to_host_bitmask(mode, fcntl_flags_tbl); - va_end(ap); - return (openat(dirfd, pathname, flags, mode)); } return (openat(dirfd, pathname, flags)); -- 1.6.0.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
