Subject: bug#60457: [bug-diffutils] bug#60457: bug#60457: Test failure (color) with UBSAN

From: Jim Meyering <[email-masked]>
Date: Sat, 7 Jan 2023 18:06:12 -0800

On Sat, Jan 7, 2023 at 6:02 PM Jim Meyering <[email-masked]> wrote:
>
> On Sat, Dec 31, 2022 at 1:55 PM Sam James <[email-masked]> wrote:
> > 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.
>
> Hi Sam, thanks for the testing and the report.
> Can you still reproduce that?

Oh, nevermind. I've just noticed that Paul fixed it in v3.8-44-g7379990