In today's CI run, the pr/pr-tests test fails with enabled sanitizers. I reproduce it locally, on Ubuntu 26.04, with CC="clang -fsanitize=address,undefined,signed-integer-overflow,shift,integer-divide-by-zero,bounds -fno-sanitize-recover=undefined" ASAN_OPTIONS="detect_leaks=0 abort_on_error=1 allocator_may_return_null=1"
Here's the log.
FAIL: tests/pr/pr-tests ======================= pr (GNU coreutils) snapshot Copyright (C) 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Pete TerMaat and Roland Huebner. 1b... 1b.r... 1b.p... 1c... 1c.r... 1c.p... 1d... 1d.r... 1d.p... 1e... 1e.r... 1e.p... 1f... 1f.r... 1f.p... 1g... 1g.r... 1g.p... 1h... 1h.r... 1h.p... 1i... pr: test 1i failed: exit status mismatch: expected 0, got 134 1i.r... pr: test 1i.r failed: exit status mismatch: expected 0, got 134 1i.p... Aborted pr: test 1i.p failed: exit status mismatch: expected 0, got 134 1j... pr: test 1j failed: exit status mismatch: expected 0, got 134 1j.r... pr: test 1j.r failed: exit status mismatch: expected 0, got 134 1j.p... Aborted pr: test 1j.p failed: exit status mismatch: expected 0, got 134 1k... pr: test 1k failed: exit status mismatch: expected 0, got 134 1k.r... pr: test 1k.r failed: exit status mismatch: expected 0, got 134 1k.p... Aborted pr: test 1k.p failed: exit status mismatch: expected 0, got 134 1l... pr: test 1l failed: exit status mismatch: expected 0, got 134 1l.r... pr: test 1l.r failed: exit status mismatch: expected 0, got 134 1l.p... Aborted pr: test 1l.p failed: exit status mismatch: expected 0, got 134 2a... 2a.r... 2a.p... 2b... 2b.r... 2b.p... 2c... 2c.r... 2c.p... 2d... 2d.r... 2d.p... 2e... pr: test 2e failed: exit status mismatch: expected 0, got 134 2e.r... pr: test 2e.r failed: exit status mismatch: expected 0, got 134 2e.p... Aborted pr: test 2e.p failed: exit status mismatch: expected 0, got 134 2f... pr: test 2f failed: exit status mismatch: expected 0, got 134 2f.r... pr: test 2f.r failed: exit status mismatch: expected 0, got 134 2f.p... Aborted pr: test 2f.p failed: exit status mismatch: expected 0, got 134 2g... pr: test 2g failed: exit status mismatch: expected 0, got 134 2g.r... pr: test 2g.r failed: exit status mismatch: expected 0, got 134 2g.p... Aborted pr: test 2g.p failed: exit status mismatch: expected 0, got 134 2h... pr: test 2h failed: exit status mismatch: expected 0, got 134 2h.r... pr: test 2h.r failed: exit status mismatch: expected 0, got 134 2h.p... Aborted pr: test 2h.p failed: exit status mismatch: expected 0, got 134 2i... 2i.r... 2i.p... 2j... 2j.r... 2j.p... 3a... 3a.r... 3a.p... 3b... 3b.r... 3b.p... 3c... 3c.r... 3c.p... 3d... 3d.r... 3d.p... 3e... 3e.r... 3e.p... 3f... 3f.r... 3f.p... 3g... 3g.r... 3g.p... 3h... 3h.r... 3h.p... 3i... 3i.r... 3i.p... 3j... 3j.r... 3j.p... 3k... 3k.r... 3k.p... 3l... 3l.r... 3l.p... 3m... 3m.r... 3m.p... 3la... 3la.r... 3la.p... 3lb... 3lb.r... 3lb.p... 3lc... 3lc.r... 3lc.p... 3ld... 3ld.r... 3ld.p... 3le... 3le.r... 3le.p... 3lf... 3lf.r... 3lf.p... 3aa... 3aa.r... 3aa.p... 3ab... 3ab.r... 3ab.p... 3ac... 3ac.r... 3ac.p... 3ad... 3ad.r... 3ad.p... 3ae... 3ae.r... 3ae.p... 3af... 3af.r... 3af.p... 3ag... 3ag.r... 3ag.p... 3ah... 3ah.r... 3ah.p... 3ai... 3ai.r... 3ai.p... 3aj... 3aj.r... 3aj.p... 3ak... 3ak.r... 3ak.p... 3ba... 3ba.r... 3ba.p... 3bb... 3bb.r... 3bb.p... 3bc... 3bc.r... 3bc.p... 3bd... 3bd.r... 3bd.p... 3be... 3be.r... 3be.p... 3bf... 3bf.r... 3bf.p... 3bg... 3bg.r... 3bg.p... 3bh... 3bh.r... 3bh.p... 3bi... 3bi.r... 3bi.p... 3bj... 3bj.r... 3bj.p... 3bk... 3bk.r... 3bk.p... 3Pa... 3Pa.r... 3Pa.p... 3Pb... 3Pb.r... 3Pb.p... 3Pc... 3Pc.r... 3Pc.p... 3Pd... 3Pd.r... 3Pd.p... 3Pe... 3Pe.r... 3Pe.p... 3Pf... 3Pf.r... 3Pf.p... 3Pg... 3Pg.r... 3Pg.p... 3Paa... 3Paa.r... 3Paa.p... 3Pab... 3Pab.r... 3Pab.p... 3Pac... 3Pac.r... 3Pac.p... 3Pad... 3Pad.r... 3Pad.p... 3Pae... 3Pae.r... 3Pae.p... 3Paf... 3Paf.r... 3Paf.p... 3Pba... 3Pba.r... 3Pba.p... 3Pbb... 3Pbb.r... 3Pbb.p... 3Pbc... 3Pbc.r... 3Pbc.p... 3Pbd... 3Pbd.r... 3Pbd.p... 3Pbe... 3Pbe.r... 3Pbe.p... 3Pbf... 3Pbf.r... 3Pbf.p... 4a... 4a.r... 4a.p... 4b... 4b.r... 4b.p... 4c... 4c.r... 4c.p... 4d... 4d.r... 4d.p... 4e... 4e.r... 4e.p... 4f... 4f.r... 4f.p... 4g... 4g.r... 4g.p... 4h... 4h.r... 4h.p... 4i... 4i.r... 4i.p... 4j... 4j.r... 4j.p... 4k... 4k.r... 4k.p... 4l... 4l.r... 4l.p... 4m... 4m.r... 4m.p... 5a... 5b... 5c... 5d... 5e... 5f... 5g... 5ma... 5mb... 5mc... 5md... 5Pma... 5Pmb... 5Pmc... 6a... 6a.r... 6a.p... 6b... 6b.r... 6b.p... 6c... 6c.r... 6c.p... 6d... 6d.r... 6d.p... 6e... 6e.r... 6e.p... 6f... 6f.r... 6f.p... 6g... 6g.r... 6g.p... 6aa... 6aa.r... 6aa.p... 6ab... 6ab.r... 6ab.p... 6ac... 6ac.r... 6ac.p... 6ba... pr: test 6ba failed: exit status mismatch: expected 0, got 134 6ba.r... pr: test 6ba.r failed: exit status mismatch: expected 0, got 134 6ba.p... Aborted pr: test 6ba.p failed: exit status mismatch: expected 0, got 134 6bb... 6bb.r... 6bb.p... 6bc... 6bc.r... 6bc.p... 7a... 7a.r... 7a.p... 7b... 7b.r... 7b.p... 7c... 7c.r... 7c.p... 7d... 7d.r... 7d.p... 7e... 7e.r... 7e.p... 7f... 7f.r... 7f.p... 7g... 7g.r... 7g.p... 7aa... 7aa.r... 7aa.p... 7ab... 7ab.r... 7ab.p... 7ac... 7ac.r... 7ac.p... 7ba... pr: test 7ba failed: exit status mismatch: expected 0, got 134 7ba.r... pr: test 7ba.r failed: exit status mismatch: expected 0, got 134 7ba.p... Aborted pr: test 7ba.p failed: exit status mismatch: expected 0, got 134 7bb... 7bb.r... 7bb.p... 7bc... 7bc.r... 7bc.p... 9a... 9a.r... 9a.p... 9b... 9b.r... 9b.p... 9Pa... 9Pa.r... 9Pa.p... 9Pb... 9Pb.r... 9Pb.p... 9Pc... 9Pc.r... 9Pc.p... 9Pe... 9Pe.r... 9Pe.p... 9Pf... 9Pf.r... 9Pf.p... 9Pg... 9Pg.r... 9Pg.p... 9Ph... 9Ph.r... 9Ph.p... 9Pi... 9Pi.r... 9Pi.p... 9Pj... 9Pj.r... 9Pj.p... 9Pk... 9Pk.r... 9Pk.p... 9Pl... 9Pl.r... 9Pl.p... 9Pm... 9Pm.r... 9Pm.p... 9Pn... 9Pn.r... 9Pn.p... 9Po... 9Po.r... 9Po.p... 9Pp... 9Pp.r... 9Pp.p... 9Pq... 9Pq.r... 9Pq.p... 9Pr... 9Pr.r... 9Pr.p... 9Ps... 9Ps.r... 9Ps.p... 9Pt... 9Pt.r... 9Pt.p... 9Paa... 9Paa.r... 9Paa.p... 9Pab... 9Pab.r... 9Pab.p... 9Pac... 9Pac.r... 9Pac.p... 9Pad... 9Pad.r... 9Pad.p... 9Pae... 9Pae.r... 9Pae.p... 9Paf... 9Paf.r... 9Paf.p... 9Pag... 9Pag.r... 9Pag.p... 9Pah... 9Pah.r... 9Pah.p... 9Pai... 9Pai.r... 9Pai.p... 9Paj... 9Paj.r... 9Paj.p... 9Pak... 9Pak.r... 9Pak.p... 9Pba... pr: test 9Pba failed: exit status mismatch: expected 0, got 134 9Pba.r... pr: test 9Pba.r failed: exit status mismatch: expected 0, got 134 9Pba.p... Aborted pr: test 9Pba.p failed: exit status mismatch: expected 0, got 134 9Pbb... pr: test 9Pbb failed: exit status mismatch: expected 0, got 134 9Pbb.r... pr: test 9Pbb.r failed: exit status mismatch: expected 0, got 134 9Pbb.p... Aborted pr: test 9Pbb.p failed: exit status mismatch: expected 0, got 134 9Pbc... pr: test 9Pbc failed: exit status mismatch: expected 0, got 134 9Pbc.r... pr: test 9Pbc.r failed: exit status mismatch: expected 0, got 134 9Pbc.p... Aborted pr: test 9Pbc.p failed: exit status mismatch: expected 0, got 134 9Pbd... pr: test 9Pbd failed: exit status mismatch: expected 0, got 134 9Pbd.r... pr: test 9Pbd.r failed: exit status mismatch: expected 0, got 134 9Pbd.p... Aborted pr: test 9Pbd.p failed: exit status mismatch: expected 0, got 134 9Pbe... pr: test 9Pbe failed: exit status mismatch: expected 0, got 134 9Pbe.r... pr: test 9Pbe.r failed: exit status mismatch: expected 0, got 134 9Pbe.p... Aborted pr: test 9Pbe.p failed: exit status mismatch: expected 0, got 134 9Pbf... pr: test 9Pbf failed: exit status mismatch: expected 0, got 134 9Pbf.r... pr: test 9Pbf.r failed: exit status mismatch: expected 0, got 134 9Pbf.p... Aborted pr: test 9Pbf.p failed: exit status mismatch: expected 0, got 134 9Pbg... pr: test 9Pbg failed: exit status mismatch: expected 0, got 134 9Pbg.r... pr: test 9Pbg.r failed: exit status mismatch: expected 0, got 134 9Pbg.p... Aborted pr: test 9Pbg.p failed: exit status mismatch: expected 0, got 134 9Pbh... pr: test 9Pbh failed: exit status mismatch: expected 0, got 134 9Pbh.r... pr: test 9Pbh.r failed: exit status mismatch: expected 0, got 134 9Pbh.p... Aborted pr: test 9Pbh.p failed: exit status mismatch: expected 0, got 134 9Pbi... pr: test 9Pbi failed: exit status mismatch: expected 0, got 134 9Pbi.r... pr: test 9Pbi.r failed: exit status mismatch: expected 0, got 134 9Pbi.p... Aborted pr: test 9Pbi.p failed: exit status mismatch: expected 0, got 134 9Pbj... pr: test 9Pbj failed: exit status mismatch: expected 0, got 134 9Pbj.r... pr: test 9Pbj.r failed: exit status mismatch: expected 0, got 134 9Pbj.p... Aborted pr: test 9Pbj.p failed: exit status mismatch: expected 0, got 134 9Pbk... 9Pbk.r... 9Pbk.p... 9Pma... 9Pmb... 9Pmc... 10wa... 10wa.r... 10wa.p... 10wb... 10wb.r... 10wb.p... 10wc... 10wc.r... 10wc.p... 10wd... 10wd.r... 10wd.p... 10we... 10we.r... 10we.p... 10wf... 10wf.r... 10wf.p... 10wg... 10wg.r... 10wg.p... 10wh... 10wh.r... 10wh.p... 10ma... 10mb... 10mc... 10md... 10me... 10mf... 10mg... 10mh... 10aa... 10aa.r... 10aa.p... 10ab... 10ab.r... 10ab.p... 10ac... 10ac.r... 10ac.p... 10ad... 10ad.r... 10ad.p... 10ba... 10ba.r... 10ba.p... 10bb... 10bb.r... 10bb.p... 10bc... 10bc.r... 10bc.p... 10bd... 10bd.r... 10bd.p... 11sa... 11sb... 11se... 11sf... 11sg... 11sh... 12aa... 12aa.r... 12aa.p... 12ab... 12ab.r... 12ab.p... 12ac... 12ac.r... 12ac.p... 12ba... 12ba.r... 12ba.p... 12bb... 12bb.r... 12bb.p... 12bc... 12bc.r... 12bc.p... 12ma... 12mb... 12mc... 12md... 13a... 13a.r... 13a.p... 13b... 13b.r... 13b.p... 13ba... 13ba.r... 13ba.p... 13bb... 13bb.r... 13bb.p... 13bc... 13bc.r... 13bc.p... 13bd... 13bd.r... 13bd.p... 13be... 13be.r... 13be.p... 13bf... 13bf.r... 13bf.p... 14a... 14a.r... 14a.p... 14b... 14b.r... 14b.p... 14c... 14c.r... 14c.p... 14d... 14d.r... 14d.p... 14e... 14e.r... 14e.p... 14f... 14f.r... 14f.p... 14g... 14g.r... 14g.p... 14h... 14h.r... 14h.p... 14i... 14i.r... 14i.p... 14j... 14j.r... 14j.p... 14k... 14k.r... 14k.p... 14l... 14l.r... 14l.p... 14m... 14m.r... 14m.p... i-opt-a... i-opt-a.r... i-opt-a.p... i-opt-b... i-opt-b.r... i-opt-b.p... ncut-a... ncut-a.r... ncut-a.p... ncut-b... ncut-b.r... ncut-b.p... margin-0... margin-0.r... margin-0.p... dbl-sp-a... dbl-sp-a.r... dbl-sp-a.p... dbl-sp-b... dbl-sp-b.r... dbl-sp-b.p... narrow-1... narrow-1.r... narrow-1.p... col-last... col-last.r... col-last.p... col-02... col-02.r... col-02.p... col-2... col-2.r... col-2.p... col-long... col-long.r... col-long.p... col-0... col-0.r... col-0.p... col-inval... col-inval.r... col-inval.p... neg-page... neg-page.r... neg-page.p... neg-inp-pos1... neg-inp-pos1.r... neg-inp-pos1.p... neg-inp-pos2... neg-inp-pos2.r... neg-inp-pos2.p... smash-heap... smash-heap.r... smash-heap.p... smash-heap8... smash-heap8.r... smash-heap8.p... page-range... page-range.r... page-range.p... padding1... padding1.r... padding1.p... padding2... padding2.r... padding2.p... padding3... padding3.r... padding3.p... page-length1... page-length1.r... page-length1.p... merge-w-tabs... merge-w-tabs-sepstr... merge-2-w-tabs... merge-2-w-tabs-sepstr... asan1... mcol-w-tabs... mcol-w-tabs.r... mcol-w-tabs.p... mcol-w-tabs-w-tabsep... mcol-w-tabs-w-tabsep.r... mcol-w-tabs-w-tabsep.p... mcol-w-tabs-w-tabsep-sepstr... mcol-w-tabs-w-tabsep-sepstr.r... mcol-w-tabs-w-tabsep-sepstr.p... FAIL tests/pr/pr-tests.pl (exit status: 1)
