--- old/src/share/vm/logging/logFileOutput.cpp 2016-04-20 18:12:13.045169924 +0900 +++ new/src/share/vm/logging/logFileOutput.cpp 2016-04-20 18:12:12.895198987 +0900 @@ -26,6 +26,7 @@ #include "logging/logConfiguration.hpp" #include "logging/logFileOutput.hpp" #include "memory/allocation.inline.hpp" +#include "runtime/arguments.hpp" #include "runtime/os.inline.hpp" #include "utilities/globalDefinitions.hpp" #include "utilities/defaultStream.hpp" @@ -187,14 +188,15 @@ } _file_count = static_cast(value); } else if (strcmp(FileSizeOptionKey, key) == 0) { - size_t value = parse_value(value_str); - if (value == SIZE_MAX || value > SIZE_MAX / K) { + success = Arguments::atojulong(value_str, &_rotate_size); + if (!success) { + break; + } else if (_rotate_size > SIZE_MAX) { errstream->print_cr("Invalid option: %s must be in range [0, " - SIZE_FORMAT "]", FileSizeOptionKey, SIZE_MAX / K); + SIZE_FORMAT "]", FileSizeOptionKey, SIZE_MAX); success = false; break; } - _rotate_size = value * K; } else { errstream->print_cr("Invalid option '%s' for log file output.", key); success = false;