RFR: 8341495: JShell crashes with java.util.MissingFormatArgumentException [v2]
Chen Liang
liach at openjdk.org
Fri Oct 4 15:01:55 UTC 2024
On Fri, 4 Oct 2024 02:27:16 GMT, Archie Cobbs <acobbs at openjdk.org> wrote:
>> 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.
>
> Archie Cobbs has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix prefixing/postfixing logic broken by previous commit.
src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java line 839:
> 837: * @return the pre/post-fixed and bracketed format string
> 838: */
> 839: String prefix(String s, String pre, String post) {
Shouldn't this `s` be renamed to `format` too, if you perform such a rename?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21339#discussion_r1787742325
More information about the kulla-dev
mailing list