gbranden pushed a commit to branch master
in repository groff.
commit 95bff60198eafc9f0ee326ad9f961b0528ec9610
Author: G. Branden Robinson <[email protected]>
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 <[email protected]>
+
+ * 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 <[email protected]>
* 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());
+ }
}
}
}
_______________________________________________
Groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit