Subject: Test failure (color) with UBSAN
From: Sam James <[email-masked]>
To: [email-masked]
Date: Sat, 31 Dec 2022 21:54:15 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi folks,

I'm testing out the latest release previews from platform-testers in Gentoo and came across the following.

diffutils' tests seem to fail (specifically the 'color' test) when built with UBSAN (-fsanitize=undefined):
```
[...]
+ mkfifo fifo
+ printf %1000000s-a
+ printf %1000000s-b
+ + diff --color=always ---presume-output-tty a bhead
 -c 10
util.c:205:3: runtime error: execution reached an unreachable program point
    #0 0x558fa0c7ee3c in xsigismember /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/util.c:205
    #1 0x558fa0c7f4e5 in install_signal_handlers /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/util.c:372
    #2 0x558fa0c80f05 in check_color_output /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/util.c:822
    #3 0x558fa0c81976 in begin_output /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/util.c:1017
    #4 0x558fa0c7c63d in print_normal_hunk /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/normal.c:49
    #5 0x558fa0c82cd1 in print_script /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/util.c:1303
    #6 0x558fa0c7c5e5 in print_normal_script /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/normal.c:31
    #7 0x558fa0c640cc in diff_2_files /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/analyze.c:665
    #8 0x558fa0c6f28c in compare_files /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/diff.c:1488
    #9 0x558fa0c69e11 in main /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/src/diff.c:851
    #10 0x7fb6ab79664f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #11 0x7fb6ab796708 in __libc_start_main_impl ../csu/libc-start.c:381
    #12 0x558fa0c5a144 in _start ../sysdeps/x86_64/start.S:115

+ test 1 = 141
+ fail=1
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ test  = yes
+ cd /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/tests
+ chmod -R u+rwx /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/tests/gt-colors.1cSV
+ rm -rf /var/tmp/portage/sys-apps/diffutils-3.8_p20221230/work/diffutils-3.8.43-2d50/tests/gt-colors.1cSV
+ exit 1
FAIL colors (exit status: 1)

============================================================================
Testsuite summary for GNU diffutils 3.8.43-2d50
============================================================================
# TOTAL: 23
# PASS:  21
# SKIP:  0
# XFAIL: 1
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See tests/test-suite.log
Please report to [email-masked]
============================================================================
```

This is with GCC 12.2.1_p20221224.

I've made the full log available at https://dev.gentoo.org/~sam/bugs/diffutils/ubsan-color-test/build.log
and https://dev.gentoo.org/~sam/bugs/diffutils/ubsan-color-test/test-suite.log.

Let me know if more information is required.

Best,
sam