RFR: 8335216: [windows] Missing error check for GetSystemDirectory in glass

Lukasz Kostyra lkostyra at openjdk.org
Mon Jul 8 14:28:48 UTC 2024


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.

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

Commit messages:
 - Improve Windows API use in RoActivationSupport

Changes: https://git.openjdk.org/jfx/pull/1498/files
  Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1498&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8335216
  Stats: 9 lines in 1 file changed: 7 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jfx/pull/1498.diff
  Fetch: git fetch https://git.openjdk.org/jfx.git pull/1498/head:pull/1498

PR: https://git.openjdk.org/jfx/pull/1498


More information about the openjfx-dev mailing list