groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[groff] 25/39: src/roff/troff/node.cpp: Improve diagnostic msg.


From: G. Branden Robinson
Subject: [groff] 25/39: src/roff/troff/node.cpp: Improve diagnostic msg.
Date: Tue, 31 May 2022 20:32:29 -0400 (EDT)

gbranden pushed a commit to branch master
in repository groff.

commit 95bff60198eafc9f0ee326ad9f961b0528ec9610
Author: G. Branden Robinson <g.branden.robinson@gmail.com>
AuthorDate: Mon May 30 20:25:48 2022 -0500

    src/roff/troff/node.cpp: Improve diagnostic msg.
    
    * src/roff/troff/node.cpp (font_position): If mounting a font fails and
      a third argument was given (to the `fp` request), report its value in
      the diagnostic message.  This could reveal a prohibited attempt at
      directory traversal.  See commit a891161bc9, 7 November.
---
 ChangeLog               |  8 ++++++++
 src/roff/troff/node.cpp | 12 +++++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a6c5a2fd..27d28ebd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2022-05-30  G. Branden Robinson <g.branden.robinson@gmail.com>
+
+       * src/roff/troff/node.cpp (font_position): If mounting a font
+       fails and a third argument was given (to the `fp` request),
+       report its value in the diagnostic message.  This could reveal a
+       prohibited attempt at directory traversal.  See commit
+       a891161bc9, 7 November.
+
 2022-05-30  G. Branden Robinson <g.branden.robinson@gmail.com>
 
        * src/libs/libgroff/fontfile.cpp (font::open_file): Refactor.
diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp
index 4e9fe343..a82e55cc 100644
--- a/src/roff/troff/node.cpp
+++ b/src/roff/troff/node.cpp
@@ -6049,9 +6049,15 @@ void font_position()
       symbol internal_name = get_name(true /* required */);
       if (!internal_name.is_null()) {
        symbol external_name = get_long_name();
-       if (!mount_font(n, internal_name, external_name))
-         error("cannot load font '%1' for mounting",
-               internal_name.contents());
+       if (!mount_font(n, internal_name, external_name)) {
+         string msg;
+         if (external_name != 0 /* nullptr */)
+           msg += string(" from file '") + external_name.contents()
+             + string("'");
+         msg += '\0';
+         error("cannot load font '%1'%2 for mounting",
+               internal_name.contents(), msg.contents());
+       }
       }
     }
   }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]