jmx-dev RFR: 8350939: Revisit Windows PDH buffer size calculation for OperatingSystemMXBean

David Holmes dholmes at openjdk.org
Tue Mar 4 06:47:52 UTC 2025


On Mon, 3 Mar 2025 12:22:01 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

> Following on from JDK-8350820, which backed out the _snprintf to snprintf change (JDK-8336289) in OperatingSystemImpl.c on Windows, because the counter names were being truncated (so CPU monitoring was not possible).
> 
> This change moves to snprintf again, but the counter names are not truncated.
> 
> snprintf must need the null terminator to fit inside the buffer length given.  It does not, and snprintf truncates (and always add the null terminator).

Fix looks good. Thanks.

src/jdk.management/windows/native/libmanagement_ext/OperatingSystemImpl.c line 296:

> 294: /* PDH format patterns, and lengths of their constant component. */
> 295: static const char* const OBJECT_COUNTER_FMT = "\\%s\\%s";
> 296: static const size_t OBJECT_COUNTER_FMT_LEN = 2;

Pre-existing but as per earlier discussions on this, what exactly do these lengths mean??

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/23861#pullrequestreview-2656144269
PR Review Comment: https://git.openjdk.org/jdk/pull/23861#discussion_r1978719502


More information about the jmx-dev mailing list