RFR: JDK-8312612: handle WideCharToMultiByte return values

Christoph Langer clanger at openjdk.org
Fri Jul 28 08:28:54 UTC 2023


On Tue, 25 Jul 2023 11:17:23 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

> The function WideCharToMultiByte is used at a number of places of the JDK codebase for conversion purposes.
> Unfortunately, the function might fail because of various reasons, so the return value must be checked to avoid undefined behavior or even crashes.
> see
> https://learn.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-widechartomultibyte
> especially
> https://learn.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-widechartomultibyte#return-value
> 
> At most places in the coding the return values are already checked, but some are missing.

Looks good, two minor suggestions.

src/java.desktop/windows/native/libawt/windows/awt_PrintJob.cpp line 3933:

> 3931:         JNU_ThrowByName(env, PRINTEREXCEPTION_STR, errStr);
> 3932:     } else {
> 3933:         JNU_ThrowByName(env, PRINTEREXCEPTION_STR, "Secondary error while OS message extraction");

better: secondary error during OS message extraction

src/java.desktop/windows/native/libjsound/PLATFORM_API_WinOS_Charset_Util.cpp line 46:

> 44:         delete[] lpUTF8Str;
> 45:     }
> 46:     return NULL;

better move `return NULL` into else block?

-------------

Marked as reviewed by clanger (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15015#pullrequestreview-1551609451
PR Review Comment: https://git.openjdk.org/jdk/pull/15015#discussion_r1277259513
PR Review Comment: https://git.openjdk.org/jdk/pull/15015#discussion_r1277260378



More information about the client-libs-dev mailing list