ACK: [OEM-5.6][SRU][PATCH 1/1] selftests: net: ip_defrag: ignore EPERM
Thadeu Lima de Souza Cascardo
cascardo at canonical.com
Fri Dec 18 09:27:17 UTC 2020
On Fri, Dec 18, 2020 at 10:55:03AM +0800, Po-Hsu Lin wrote:
> From: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
>
> BugLink: https://bugs.launchpad.net/bugs/1908498
>
> When running with conntrack rules, the dropped overlap fragments may cause
> EPERM to be returned to sendto. Instead of completely failing, just ignore
> those errors and continue. If this causes packets with overlap fragments to
> be dropped as expected, that is okay. And if it causes packets that are
> expected to be received to be dropped, which should not happen, it will be
> detected as failure.
>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> (cherry picked from commit 065fcfd49763ec71ae345bb5c5a74f961031e70e)
> Signed-off-by: Po-Hsu Lin <po-hsu.lin at canonical.com>
Acked-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
> ---
> tools/testing/selftests/net/ip_defrag.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/testing/selftests/net/ip_defrag.c b/tools/testing/selftests/net/ip_defrag.c
> index c0c9ecb..f9ed749 100644
> --- a/tools/testing/selftests/net/ip_defrag.c
> +++ b/tools/testing/selftests/net/ip_defrag.c
> @@ -192,9 +192,9 @@ static void send_fragment(int fd_raw, struct sockaddr *addr, socklen_t alen,
> }
>
> res = sendto(fd_raw, ip_frame, frag_len, 0, addr, alen);
> - if (res < 0)
> + if (res < 0 && errno != EPERM)
> error(1, errno, "send_fragment");
> - if (res != frag_len)
> + if (res >= 0 && res != frag_len)
> error(1, 0, "send_fragment: %d vs %d", res, frag_len);
>
> frag_counter++;
> @@ -313,9 +313,9 @@ static void send_udp_frags(int fd_raw, struct sockaddr *addr,
> iphdr->ip_len = htons(frag_len);
> }
> res = sendto(fd_raw, ip_frame, frag_len, 0, addr, alen);
> - if (res < 0)
> + if (res < 0 && errno != EPERM)
> error(1, errno, "sendto overlap: %d", frag_len);
> - if (res != frag_len)
> + if (res >= 0 && res != frag_len)
> error(1, 0, "sendto overlap: %d vs %d", (int)res, frag_len);
> frag_counter++;
> }
> --
> 2.7.4
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
More information about the kernel-team
mailing list