Message ID | 20181213130611.7496-1-tom.deseyn@gmail.com |
---|---|
State | New |
Headers | show |
Series | Add getsockopt for settable SOL_IPV6 options | expand |
Patchew URL: https://patchew.org/QEMU/20181213130611.7496-1-tom.deseyn@gmail.com/ Hi, This series seems to have some coding style problems. See output below for more information: Type: series Message-id: 20181213130611.7496-1-tom.deseyn@gmail.com Subject: [Qemu-devel] [PATCH] Add getsockopt for settable SOL_IPV6 options === TEST SCRIPT BEGIN === #!/bin/bash BASE=base n=1 total=$(git log --oneline $BASE.. | wc -l) failed=0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram commits="$(git log --format=%H --reverse $BASE..)" for c in $commits; do echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..." if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then failed=1 echo fi n=$((n+1)) done exit $failed === TEST SCRIPT END === Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384 From https://github.com/patchew-project/qemu * [new tag] patchew/20181213210057.3676-1-quintela@redhat.com -> patchew/20181213210057.3676-1-quintela@redhat.com Switched to a new branch 'test' 851c863 Add getsockopt for settable SOL_IPV6 options === OUTPUT BEGIN === Checking PATCH 1/1: Add getsockopt for settable SOL_IPV6 options... ERROR: braces {} are necessary for all arms of this statement #30: FILE: linux-user/syscall.c:2368: + if (get_user_u32(len, optlen)) [...] ERROR: braces {} are necessary for all arms of this statement #32: FILE: linux-user/syscall.c:2370: + if (len < 0) [...] ERROR: braces {} are necessary for all arms of this statement #36: FILE: linux-user/syscall.c:2374: + if (ret < 0) [...] ERROR: braces {} are necessary for all arms of this statement #44: FILE: linux-user/syscall.c:2382: + if (len > sizeof(int)) [...] total: 4 errors, 0 warnings, 45 lines checked Your patch 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/20181213130611.7496-1-tom.deseyn@gmail.com/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [http://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
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",