Le 14/01/2016 10:01, Chen Gang a écrit : > On 2016年01月14日 16:15, Laurent Vivier wrote: >> Le 14/01/2016 07:24, cheng...@emindsoft.com.cn a écrit : >>> From: Chen Gang <cheng...@emindsoft.com.cn> >>> >>> After host_to_target_sock_type(), the length of val may be changed, so >>> calculate the related lv, too. >>> >>> Signed-off-by: Chen Gang <gang.chen.5...@gmail.com> >>> --- >>> linux-user/syscall.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c >>> index fcdca2a..0e95f35 100644 >>> --- a/linux-user/syscall.c >>> +++ b/linux-user/syscall.c >>> @@ -1841,6 +1841,7 @@ static abi_long do_getsockopt(int sockfd, int level, >>> int optname, >>> return ret; >>> if (optname == SO_TYPE) { >>> val = host_to_target_sock_type(val); >>> + lv = (val >> 8) ? 4 : 1; >> >> It seems the kernel always returns sizeof(int) (for all archs), what is >> the aim of reducing the size ? >> > > I am not quite sure whether kernel always returns sizeof(int) (I guess, > it should be).
it can be 1 only if len is 1, but this is managed below. > For me, if you are sure, we can skip this patch. Does it fix something ? Laurent