From 4e0919a439a09ec2405c72c282a7c3e283de08fa Mon Sep 17 00:00:00 2001 From: Ralf Schmelter Date: Thu, 25 Jan 2024 09:46:56 +0100 Subject: [PATCH] Implemented feedback and make sure periodic tasks intervals are sane. --- src/hotspot/os/posix/malloctrace/mallocTrace2.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/hotspot/os/posix/malloctrace/mallocTrace2.cpp b/src/hotspot/os/posix/malloctrace/mallocTrace2.cpp index 75988b429a3..ac656f321cb 100644 --- a/src/hotspot/os/posix/malloctrace/mallocTrace2.cpp +++ b/src/hotspot/os/posix/malloctrace/mallocTrace2.cpp @@ -90,13 +90,15 @@ static uint64_t parse_timespan_part(char const* start, char const* end, char con return 0; } - if (((size_t) (end - start)) >= sizeof(buf) - 1) { + size_t size = (size_t) (end - start); + + if (size >= sizeof(buf)) { *error = "time too long"; return 0; } - memcpy(buf, start, end - start); - buf[end - start] = '\0'; + memcpy(buf, start, size); + buf[size] = '\0'; char* found_end; uint64_t result = (uint64_t) strtoull(buf, &found_end, 10); @@ -2395,7 +2397,7 @@ class MallocTraceDumpPeriodicTask : public PeriodicTask { public: MallocTraceDumpPeriodicTask(uint64_t delay) : - PeriodicTask(1000 * delay), + PeriodicTask(MIN2((uint64_t) 2000000000, 1000 * delay)), _left(MallocTraceDumpCount - 1) { } @@ -2415,7 +2417,7 @@ class MallocTraceDumpInitialTask : public PeriodicTask { public: MallocTraceDumpInitialTask(uint64_t delay) : - PeriodicTask(1000 * delay) { + PeriodicTask(MIN2((uint64_t) 2000000000, 1000 * delay)) { } virtual void task();