Patchwork [3/3] linux-user: exclude SO_TIMESTAMP cmsg_type from unsuppoted ancillary data

login
register
mail settings
Submitter Jing Huang
Date July 14, 2012, 5:13 p.m.
Message ID <CAK8mDgqef46pydxggBR6dVmVJXAKOc-Z5q=jB0jHSEiy4zzHuw@mail.gmail.com>
Download mbox | patch
Permalink /patch/171011/
State New
Headers show

Comments

Jing Huang - July 14, 2012, 5:13 p.m.
This patch excludes SO_TIMESTAMP cmsg_type from unsuppoted ancillary data

Signed-off-by: Jing Huang <jing.huang.pku@gmail.com>
---
 linux-user/syscall.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

cmsg->cmsg_level, cmsg->cmsg_type);
             memcpy(target_data, data, len);
         } else {
dunrong huang - July 15, 2012, 2:14 a.m.
2012/7/15 Jing Huang <jing.huang.pku@gmail.com>:
> This patch excludes SO_TIMESTAMP cmsg_type from unsuppoted ancillary data
>
> Signed-off-by: Jing Huang <jing.huang.pku@gmail.com>
> ---
>  linux-user/syscall.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index ed93af0..850e6e0 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -1349,7 +1349,9 @@ static inline abi_long
> host_to_target_cmsg(struct target_msghdr *target_msgh,
>          target_cmsg->cmsg_type = tswap32(cmsg->cmsg_type);
>          target_cmsg->cmsg_len = tswapal(TARGET_CMSG_LEN(len));
>
> -        if (cmsg->cmsg_level != TARGET_SOL_SOCKET || cmsg->cmsg_type
> != SCM_RIGHTS) {
Your mail client(or mail server) splits long lines, so the patch cant
be applied.
What's tool you used to send patches? you'd better use git send-email.

> +        if (cmsg->cmsg_level != TARGET_SOL_SOCKET ||
> +                    (cmsg->cmsg_type != SCM_RIGHTS &&
> +                                    cmsg->cmsg_type != SO_TIMESTAMP)) {
>              gemu_log("Unsupported ancillary data: %d/%d\n",
> cmsg->cmsg_level, cmsg->cmsg_type);
>              memcpy(target_data, data, len);
>          } else {
> --
> 1.7.8.6
>

Patch

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index ed93af0..850e6e0 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1349,7 +1349,9 @@  static inline abi_long
host_to_target_cmsg(struct target_msghdr *target_msgh,
         target_cmsg->cmsg_type = tswap32(cmsg->cmsg_type);
         target_cmsg->cmsg_len = tswapal(TARGET_CMSG_LEN(len));

-        if (cmsg->cmsg_level != TARGET_SOL_SOCKET || cmsg->cmsg_type
!= SCM_RIGHTS) {
+        if (cmsg->cmsg_level != TARGET_SOL_SOCKET ||
+                    (cmsg->cmsg_type != SCM_RIGHTS &&
+                                    cmsg->cmsg_type != SO_TIMESTAMP)) {
             gemu_log("Unsupported ancillary data: %d/%d\n",