]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: mptcp: join: mark tests with data corruption as failed
authorGang Yan <yangang@kylinos.cn>
Mon, 3 Aug 2026 16:16:37 +0000 (18:16 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 6 Aug 2026 15:46:23 +0000 (08:46 -0700)
check_transfer() compares the input and output files byte-by-byte using
`cmp -l "$in" "$out" | while read ...`. Because the while-loop body runs
in a subshell (the script sets neither lastpipe nor pipefail), the
fail_test call inside it -- which sets the global ret/last_test_failed --
and the `return 1` both act on the subshell, not on check_transfer().

check_transfer() thus always falls through to `return 0`, and any data
corruption affecting only the payload (leaving the subflow/PM counters
untouched) is silently reported as PASS.

Fixes: 8117dac3e7c3 ("selftests: mptcp: add invert check in check_transfer")
Cc: stable@vger.kernel.org
Signed-off-by: Gang Yan <yangang@kylinos.cn>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20260803-net-mptcp-misc-fixes-7-2-rc6-v2-5-b8f496d71664@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/mptcp/mptcp_join.sh

index c0aeffd5cb714afcf1321421eba35179afed30c4..7dc91fac4917eeb243b8166a766b53533a56afac 100755 (executable)
@@ -584,7 +584,7 @@ check_transfer()
                mv "$tmpfile" "$out"
                tmpfile=""
        fi
-       cmp -l "$in" "$out" | while read -r i a b; do
+       while read -r i a b; do
                local sum=$((0${a} + 0${b}))
                if [ $check_invert -eq 0 ] || [ $sum -ne $((0xff)) ]; then
                        fail_test "$what does not match (in, out):"
@@ -595,7 +595,7 @@ check_transfer()
                else
                        print_info "$what has inverted byte at ${i}"
                fi
-       done
+       done < <(cmp -l "$in" "$out")
 
        return 0
 }