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