* [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches
@ 2019-01-10 8:37 Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 1/2] Add getsockopt for settable SOL_IPV6 options Laurent Vivier
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Laurent Vivier @ 2019-01-10 8:37 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier, Riku Voipio
The following changes since commit 147923b1a901a0370f83a0f4c58ec1baffef22f0:
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20190108-pull-request' into staging (2019-01-08 16:07:32 +0000)
are available in the Git repository at:
git://github.com/vivier/qemu.git tags/linux-user-for-4.0-pull-request
for you to fetch changes up to 2bd3f8998e1e7dcd9afc29fab252fb9936f9e956:
linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0 (2019-01-10 09:36:41 +0100)
----------------------------------------------------------------
Minor linux-user update (2019-01-10)
Fixes LTP tests pwrite03 and pwrite03_64
----------------------------------------------------------------
Peter Maydell (1):
linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0
Tom Deseyn (1):
Add getsockopt for settable SOL_IPV6 options
linux-user/syscall.c | 61 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 57 insertions(+), 4 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 1/2] Add getsockopt for settable SOL_IPV6 options
2019-01-10 8:37 [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Laurent Vivier
@ 2019-01-10 8:37 ` Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 2/2] linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0 Laurent Vivier
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2019-01-10 8:37 UTC (permalink / raw)
To: qemu-devel; +Cc: Laurent Vivier, Riku Voipio, Tom Deseyn
From: Tom Deseyn <tom.deseyn@gmail.com>
Signed-off-by: Tom Deseyn <tom.deseyn@gmail.com>
Message-Id: <20181213130611.7496-1-tom.deseyn@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 280137da8c..29bac79b61 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -2352,6 +2352,45 @@ static abi_long do_getsockopt(int sockfd, int level, int optname,
break;
}
break;
+ case SOL_IPV6:
+ switch (optname) {
+ case IPV6_MTU_DISCOVER:
+ case IPV6_MTU:
+ case IPV6_V6ONLY:
+ case IPV6_RECVPKTINFO:
+ case IPV6_UNICAST_HOPS:
+ case IPV6_MULTICAST_HOPS:
+ case IPV6_MULTICAST_LOOP:
+ case IPV6_RECVERR:
+ case IPV6_RECVHOPLIMIT:
+ case IPV6_2292HOPLIMIT:
+ case IPV6_CHECKSUM:
+ if (get_user_u32(len, optlen))
+ return -TARGET_EFAULT;
+ if (len < 0)
+ return -TARGET_EINVAL;
+ lv = sizeof(lv);
+ ret = get_errno(getsockopt(sockfd, level, optname, &val, &lv));
+ if (ret < 0)
+ return ret;
+ if (len < sizeof(int) && len > 0 && val >= 0 && val < 255) {
+ len = 1;
+ if (put_user_u32(len, optlen)
+ || put_user_u8(val, optval_addr))
+ return -TARGET_EFAULT;
+ } else {
+ if (len > sizeof(int))
+ len = sizeof(int);
+ if (put_user_u32(len, optlen)
+ || put_user_u32(val, optval_addr))
+ return -TARGET_EFAULT;
+ }
+ break;
+ default:
+ ret = -TARGET_ENOPROTOOPT;
+ break;
+ }
+ break;
default:
unimplemented:
gemu_log("getsockopt level=%d optname=%d not yet supported\n",
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PULL 2/2] linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0
2019-01-10 8:37 [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 1/2] Add getsockopt for settable SOL_IPV6 options Laurent Vivier
@ 2019-01-10 8:37 ` Laurent Vivier
2019-01-10 18:45 ` [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Peter Maydell
2019-01-13 21:17 ` no-reply
3 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2019-01-10 8:37 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Riku Voipio, Peter Maydell,
Philippe Mathieu-Daudé
From: Peter Maydell <peter.maydell@linaro.org>
Linux returns success if pwrite64() or pread64() are called with a
zero length NULL buffer, but QEMU was returning -TARGET_EFAULT.
This is the same bug that we fixed in commit 58cfa6c2e6eb51b23cc9
for the write syscall, and long before that in 38d840e6790c29f59
for the read syscall.
Fixes: https://bugs.launchpad.net/qemu/+bug/1810433
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20190108184900.9654-1-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 29bac79b61..d6605b8b50 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9716,8 +9716,15 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
arg4 = arg5;
arg5 = arg6;
}
- if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
- return -TARGET_EFAULT;
+ if (arg2 == 0 && arg3 == 0) {
+ /* Special-case NULL buffer and zero length, which should succeed */
+ p = 0;
+ } else {
+ p = lock_user(VERIFY_WRITE, arg2, arg3, 0);
+ if (!p) {
+ return -TARGET_EFAULT;
+ }
+ }
ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5)));
unlock_user(p, arg2, ret);
return ret;
@@ -9726,8 +9733,15 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
arg4 = arg5;
arg5 = arg6;
}
- if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
- return -TARGET_EFAULT;
+ if (arg2 == 0 && arg3 == 0) {
+ /* Special-case NULL buffer and zero length, which should succeed */
+ p = 0;
+ } else {
+ p = lock_user(VERIFY_READ, arg2, arg3, 1);
+ if (!p) {
+ return -TARGET_EFAULT;
+ }
+ }
ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4, arg5)));
unlock_user(p, arg2, 0);
return ret;
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches
2019-01-10 8:37 [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 1/2] Add getsockopt for settable SOL_IPV6 options Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 2/2] linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0 Laurent Vivier
@ 2019-01-10 18:45 ` Peter Maydell
2019-01-13 21:17 ` no-reply
3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2019-01-10 18:45 UTC (permalink / raw)
To: Laurent Vivier; +Cc: QEMU Developers, Riku Voipio
On Thu, 10 Jan 2019 at 09:01, Laurent Vivier <laurent@vivier.eu> wrote:
>
> The following changes since commit 147923b1a901a0370f83a0f4c58ec1baffef22f0:
>
> Merge remote-tracking branch 'remotes/kraxel/tags/usb-20190108-pull-request' into staging (2019-01-08 16:07:32 +0000)
>
> are available in the Git repository at:
>
> git://github.com/vivier/qemu.git tags/linux-user-for-4.0-pull-request
>
> for you to fetch changes up to 2bd3f8998e1e7dcd9afc29fab252fb9936f9e956:
>
> linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0 (2019-01-10 09:36:41 +0100)
>
> ----------------------------------------------------------------
> Minor linux-user update (2019-01-10)
> Fixes LTP tests pwrite03 and pwrite03_64
>
> ----------------------------------------------------------------
>
> Peter Maydell (1):
> linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0
>
> Tom Deseyn (1):
> Add getsockopt for settable SOL_IPV6 options
>
> linux-user/syscall.c | 61 +++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 57 insertions(+), 4 deletions(-)
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/4.0
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches
2019-01-10 8:37 [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Laurent Vivier
` (2 preceding siblings ...)
2019-01-10 18:45 ` [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Peter Maydell
@ 2019-01-13 21:17 ` no-reply
3 siblings, 0 replies; 5+ messages in thread
From: no-reply @ 2019-01-13 21:17 UTC (permalink / raw)
To: laurent; +Cc: fam, qemu-devel, riku.voipio
Patchew URL: https://patchew.org/QEMU/20190110083737.5036-1-laurent@vivier.eu/
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20190110083737.5036-1-laurent@vivier.eu
Subject: [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches
=== TEST SCRIPT BEGIN ===
#!/bin/bash
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===
From https://github.com/patchew-project/qemu
* [new tag] patchew/20190110083737.5036-1-laurent@vivier.eu -> patchew/20190110083737.5036-1-laurent@vivier.eu
Switched to a new branch 'test'
47841e1 Add getsockopt for settable SOL_IPV6 options
=== OUTPUT BEGIN ===
ERROR: braces {} are necessary for all arms of this statement
#35: FILE: linux-user/syscall.c:2407:
+ if (get_user_u32(len, optlen))
[...]
ERROR: braces {} are necessary for all arms of this statement
#37: FILE: linux-user/syscall.c:2409:
+ if (len < 0)
[...]
ERROR: braces {} are necessary for all arms of this statement
#41: FILE: linux-user/syscall.c:2413:
+ if (ret < 0)
[...]
ERROR: braces {} are necessary for all arms of this statement
#49: FILE: linux-user/syscall.c:2421:
+ if (len > sizeof(int))
[...]
total: 4 errors, 0 warnings, 45 lines checked
Commit 47841e11e8dd (Add getsockopt for settable SOL_IPV6 options) has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===
Test command exited with code: 1
The full log is available at
http://patchew.org/logs/20190110083737.5036-1-laurent@vivier.eu/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-01-13 21:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-10 8:37 [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 1/2] Add getsockopt for settable SOL_IPV6 options Laurent Vivier
2019-01-10 8:37 ` [Qemu-devel] [PULL 2/2] linux-user: make pwrite64/pread64(fd, NULL, 0, offset) return 0 Laurent Vivier
2019-01-10 18:45 ` [Qemu-devel] [PULL 0/2] Linux user for 4.0 patches Peter Maydell
2019-01-13 21:17 ` no-reply
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).