gbranden pushed a commit to branch master
in repository groff.

commit 40dd5cd0587a4238f150490fdcdc794d947ede2c
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
AuthorDate: Sat Mar 15 23:03:52 2025 -0500

    [troff]: Fix SEGV risk in previous commit.
    
    * src/roff/troff/input.cpp (macro:json_dump): A `macro` object is not
      guaranteed to contain a `macro_header`; check for a null pointer and
      report an empty JSON string if there's no header.
---
 ChangeLog                | 6 ++++++
 src/roff/troff/input.cpp | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 89a975aae..cdf7d6500 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2025-03-15  G. Branden Robinson <g.branden.robin...@gmail.com>
+
+       * src/roff/troff/input.cpp (macro:json_dump): A `macro` object
+       is not guaranteed to contain a `macro_header`; check for a null
+       pointer and report an empty JSON string if there's no header.
+
 2025-03-15  G. Branden Robinson <g.branden.robin...@gmail.com>
 
        [troff]: Implement dumping of device extension node contents.
diff --git a/src/roff/troff/input.cpp b/src/roff/troff/input.cpp
index 9c4427f3f..71eec4fc8 100644
--- a/src/roff/troff/input.cpp
+++ b/src/roff/troff/input.cpp
@@ -3716,7 +3716,10 @@ void macro::print_size()
 
 void macro::json_dump()
 {
-  p->json_dump();
+  if (p != 0 /* nullptr */)
+    p->json_dump();
+  else
+    fputs("\"\"", stderr);
 }
 
 // make a copy of the first n bytes

_______________________________________________
groff-commit mailing list
groff-commit@gnu.org
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to