On Mon, 8 Jul 2024 14:24:27 GMT, Lukasz Kostyra <lkost...@openjdk.org> wrote:
> When GetSystemDirectory does not have enough space to output a path to > Windows' system directory, it will return a different value than 0 (more > notably, the amount of bytes actually needed including null terminator). This > was not checked, so the very rare hypothetical situation where Windows' > system directory is different than the "standard" `C:\Windows` and longer > than MAX_PATH was not properly handled. > > For now I simply changed the code to print an error and exit. This could be > improved further to instead dynamically allocate space for the system > directory though. > > Other changes, also mentioned in the issue: > - We use `wchar_t` explicitly here, so I changed `GetSystemDirectory` to > `GetSystemDirectoryW` to ensure the code compiles even without UNICODE being > defined > - `wcscat_s` can potentially fail for the same reasons as above, so this > situation is also handled now. I've checked the specification of `GetSystemDirectoryW` and `wcscat_s`. The patch will correctly catch failure cases. ------------- Marked as reviewed by mstrauss (Committer). PR Review: https://git.openjdk.org/jfx/pull/1498#pullrequestreview-2164023380