mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-28 09:53:15 -04:00
selftests: mptcp: join: mark tests with data corruption as failed
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: 8117dac3e7 ("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>
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user