RFR: 8353468: [ubsan] arguments.cpp:2422:23: runtime error: 2.14748e+11 is outside the range of representable values of type 'int' [v3]
David Holmes
dholmes at openjdk.org
Thu Aug 28 01:28:45 UTC 2025
On Wed, 27 Aug 2025 09:54:43 GMT, Afshin Zafari <azafari at openjdk.org> wrote:
>> In converting values of `-XMinf` and `-XMaxf` options to `int`, overflow was not checked.
>> The values are checked against INT_MAX and clamped.
>>
>> Tests: tiers 1-5.
>
> Afshin Zafari has updated the pull request incrementally with one additional commit since the last revision:
>
> improved invalid detection and error messages
Changes requested by dholmes (Reviewer).
src/hotspot/share/runtime/arguments.cpp line 2422:
> 2420: } else {
> 2421: if (dmaxf < 0.0 || dmaxf > 1.0) {
> 2422: JVMFlag::printError(true,"uintx MaxHeapFreeRatio=%s is outside the allowed range [ 0.0 ... 1.0 ]\n", tail);
This needs to refer to the allowed range for `-Xmaxf` as that is what the user supplied. The user does not know this is just used to internally set `MaxHeapFreeRatio`. If `-Xminf` and `-Xmaxf` were actually VM `-XX` flags then we would have defined the appropriate constraint function for them. We need to emulate that here. There should also be checks that minf <= maxf.
-------------
PR Review: https://git.openjdk.org/jdk/pull/26859#pullrequestreview-3162630697
PR Review Comment: https://git.openjdk.org/jdk/pull/26859#discussion_r2305846137
More information about the hotspot-runtime-dev
mailing list