gbranden pushed a commit to branch master
in repository groff.

commit 205334d6e5458f2f51689e6c2ad6f101fc91a3e3
Author: G. Branden Robinson <[email protected]>
AuthorDate: Sun Sep 1 20:50:01 2024 -0500

    [troff]: Fix assertion failure in `do` request.
    
    * src/roff/troff/input.cpp (do_request): Fix assertion failure.
      Validate presence of arguments before further operating.
    
      Fixes:
    
      $ echo '.do' | ./build/test-groff
      troff: ../src/roff/troff/input.cpp:9050: request_or_macro*
      lookup_request(symbol): Assertion `!nm.is_null()' failed.
      .../groff: error: troff: Aborted (core dumped)
---
 ChangeLog                | 12 ++++++++++++
 src/roff/troff/input.cpp |  6 ++++++
 2 files changed, 18 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 6b5cf6b35..e6001ad3a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2024-09-01  G. Branden Robinson <[email protected]>
+
+       * src/roff/troff/input.cpp (do_request): Fix assertion failure.
+       Validate presence of arguments before further operating.
+
+       Fixes:
+
+       $ echo '.do' | ./build/test-groff
+       troff: ../src/roff/troff/input.cpp:9050: request_or_macro*
+       lookup_request(symbol): Assertion `!nm.is_null()' failed.
+       .../groff: error: troff: Aborted (core dumped)
+
 2024-09-01  G. Branden Robinson <[email protected]>
 
        * src/roff/troff/env.cpp (hyphenate): Explicitly compare
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 63fe7e704..1e0447f3e 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -2901,6 +2901,12 @@ static void trapping_blank_line()
 
 void do_request()
 {
+  if (!has_arg()) {
+    warning(WARN_MISSING, "compatibility mode interpretation request"
+           " expects a request or macro as argument");
+    skip_line();
+    return;
+  }
   assert(do_old_want_att_compat == -1);
   do_old_want_att_compat = want_att_compat;
   want_att_compat = false;

_______________________________________________
Groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to