Subject: Re: [PATCH net] selftests: net: fix "buffer overflow detected" for tap.c

From: Simon Horman <[email-masked]>
Date: Thu, 11 Dec 2025 10:13:37 +0000

On Wed, Dec 10, 2025 at 05:39:32PM -0500, Alice C. Munduruca wrote:
> When 'tap.c' is compiled with '-D_FORTIFY_SOURCE=3', the strcpy() in
> rtattr_add_strsz() is replaced with a checked version which causes the
> test to consistently fail when compiled with toolchains for which this
> option is enabled by default.
> 
>  TAP version 13
>  1..3
>  # Starting 3 tests from 1 test cases.
>  #  RUN           tap.test_packet_valid_udp_gso ...
>  *** buffer overflow detected ***: terminated
>  # test_packet_valid_udp_gso: Test terminated by assertion
>  #          FAIL  tap.test_packet_valid_udp_gso
>  not ok 1 tap.test_packet_valid_udp_gso
>  #  RUN           tap.test_packet_valid_udp_csum ...
>  *** buffer overflow detected ***: terminated
>  # test_packet_valid_udp_csum: Test terminated by assertion
>  #          FAIL  tap.test_packet_valid_udp_csum
>  not ok 2 tap.test_packet_valid_udp_csum
>  #  RUN           tap.test_packet_crash_tap_invalid_eth_proto ...
>  *** buffer overflow detected ***: terminated
>  # test_packet_crash_tap_invalid_eth_proto: Test terminated by assertion
>  #          FAIL  tap.test_packet_crash_tap_invalid_eth_proto
>  not ok 3 tap.test_packet_crash_tap_invalid_eth_proto
>  # FAILED: 0 / 3 tests passed.
>  # Totals: pass:0 fail:3 xfail:0 xpass:0 skip:0 error:0
> 
> Using `memcpy`, an unchecked function, avoids this issue and allows
> the tests to go forwards as expected.
> 
> Fixes: 2e64fe4624d1 ("selftests: add few test cases for tap driver")
> Signed-off-by: Alice C. Munduruca <[email-masked]>

Thanks Alice,

I agree that this approach makes sense.
But I wonder if the commit message should also mention:

1. That this is consistent with usage elsewhere in this file
2. Why there is actually no overflow.

...