RFR: 8341495: JShell crashes with java.util.MissingFormatArgumentException
Archie Cobbs
acobbs at openjdk.org
Thu Oct 3 22:37:04 UTC 2024
JShell prints some of its output using `printf()` formatted strings. However, there are a few spots where a string `str` to be printed is passed directly as a format string like `format(str)` instead of indirectly like `format("%s", str)`, even though the string `str` contains unknown or arbitrary content outside of JShell's control. As a result, JShell can crash suddenly with a `MissingFormatArgumentException` or similar exception if the string `str` happens to contain a `%` format specifier, etc.
Please review this patch which attempts to fix the places where an unknown string is passed directly as a format string.
-------------
Commit messages:
- Avoid invoking out.printf() with unknown format strings that might contain escapes.
Changes: https://git.openjdk.org/jdk/pull/21339/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21339&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8341495
Stats: 58 lines in 2 files changed: 53 ins; 0 del; 5 mod
Patch: https://git.openjdk.org/jdk/pull/21339.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21339/head:pull/21339
PR: https://git.openjdk.org/jdk/pull/21339
More information about the kulla-dev
mailing list