[bug #68468] [eqn] SEGV when more than 9 arguments passed to a user-defined eqn macro

"G. Branden Robinson" <[email protected]> Thu, 25 Jun 2026 00:46:05 -0400 (EDT)
Newsgroups gmane.comp.printing.groff.bugs
Message-ID <[email protected]>
Update of bug #68468 (group groff):

                  Status:             In Progress => Fixed
             Open/Closed:                    Open => Closed
         Planned Release:                    None => 1.25.0

    _______________________________________________________

Follow-up Comment #1:


commit aa43b5e261a7b4fe3b09e6673f145b0e123faffa
Author: G. Branden Robinson <[email protected]>
Date:   Tue Jun 23 14:02:44 2026 -0500

    [eqn]: Regression-test Savannah #68468.
    
    * src/preproc/eqn/tests/do-not-segv-on-excess-macro-arguments.sh: Do it.
    
    * src/preproc/eqn/eqn.am (eqn_TESTS): Run test.
    
    Test fails at this commit.

commit bfc325f3cf752aca2ddc9dc80ebb284bae3ba4af
Author: G. Branden Robinson <[email protected]>
Date:   Tue Jun 23 17:56:54 2026 -0500

    [eqn]: Fix Savannah #68468.
    
    * src/preproc/eqn/lex.cpp (interpolate_macro_with_args): Declare new
      `bool`, `is_ignoring_arguments`.  Use it within the macro argument
      reading loop to ignore any arguments past the ninth, so that they do
      not populate the `argv` array beyond its bounds.  Neither AT&T nor GNU
      eqn has a syntax for interpolating tenth or subsequent arguments, nor
      any `shift` command that would made such arguments addressable.  Issue
      one warning per macro expansion with excess arguments.
    
    Fixes <https://savannah.gnu.org/bugs/?68468>.  Problem reported
    apparently by an LLM robot in <https://lists.gnu.org/archive/html/\
    bug-groff/2026-06/msg00053.html>.




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?68468>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQQk97aszIMMAvLLwm6qLAuaBUf3TgUCajyyjQAKCRCqLAuaBUf3
TiErAP40aQZkUST+LpUlo6SjkEK2u8QqhyDVO9pC96MKqrnKvQEAu+KrF51rCrQ/
tf6tPRp52DHFGRQIYyoRwLjVQc1exAk=
=RMot
-----END PGP SIGNATURE-----