URL: <https://savannah.gnu.org/bugs/?65930>
Summary: [me] Large values of register "tv" cause fatal error Group: GNU roff Submitter: barx Submitted: Sat 29 Jun 2024 03:48:35 PM CDT Category: Macro package me Severity: 3 - Normal Item Group: Incorrect behaviour Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Planned Release: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: Sat 29 Jun 2024 03:48:35 PM CDT By: Dave <barx> This bug is in at least 1.22.4 and 1.23. The below example uses the register name "$v" rather than its more modern alias "tv", so that the example works the same in current and pre-1.23 code (which had not yet defined "tv"). $ cat stack-limit.me .mso e.tmac .br .nr $v 421 $ groff stack-limit.me | wc troff: fatal error: input stack limit exceeded (probable infinite loop) 238 780 4673 Observations: * The bug only happens with the .br request present. * Values 420 and lower do not trigger the bug. Values 421 and higher do. * This applies to output on the ps device. On the ascii device, 421 does not trigger the bug, but 440 does. * If any text is appended to the input file (either with or without a -me paragraphing macro), that text _is_ present in the output, despite the error above it being "fatal." Yes, 421 is higher than most real-world values for the $v/tv register, so I don't have a problem with this exceeding a supported limit. But exceeding that limit shouldn't provoke an ostensibly fatal error. And "stack limit exceeded" is a peculiar error for this to trigger. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?65930> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature