diff options
| author | Brad King <brad.king@kitware.com> | 2022-09-21 14:12:02 (GMT) |
|---|---|---|
| committer | Kitware Robot <kwrobot@kitware.com> | 2022-09-21 14:12:10 (GMT) |
| commit | 3e20442246dac1bef1111a80e70ed0d59b55a4a4 (patch) | |
| tree | bbe4dc0820abb3e4163aecb97fc1d39536cd0096 /Source/cmFileCommand.cxx | |
| parent | 27a05e84e2c6f5de56b0b4015b8ed6bc89ce9132 (diff) | |
| parent | 8fc822e13a8bf8695e475655f647d5d69f99c414 (diff) | |
| download | CMake-3e20442246dac1bef1111a80e70ed0d59b55a4a4.zip CMake-3e20442246dac1bef1111a80e70ed0d59b55a4a4.tar.gz CMake-3e20442246dac1bef1111a80e70ed0d59b55a4a4.tar.bz2 | |
Merge topic 'parse-large-int' into release-3.24
8fc822e13a file: Avoid strange istringstream crash in cmake.org binaries on Alpine Linux
31f158e4c8 cmStringAlgorithms: Add functions to parse strings to long long integers
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7698
Diffstat (limited to 'Source/cmFileCommand.cxx')
| -rw-r--r-- | Source/cmFileCommand.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 7d05347..3c234a6 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -200,13 +200,19 @@ bool HandleReadCommand(std::vector<std::string> const& args, // is there a limit? std::string::size_type sizeLimit = std::string::npos; if (!arguments.Limit.empty()) { - std::istringstream(arguments.Limit) >> sizeLimit; + unsigned long long limit; + if (cmStrToULongLong(arguments.Limit, &limit)) { + sizeLimit = static_cast<std::string::size_type>(limit); + } } // is there an offset? cmsys::ifstream::off_type offset = 0; if (!arguments.Offset.empty()) { - std::istringstream(arguments.Offset) >> offset; + long long off; + if (cmStrToLongLong(arguments.Offset, &off)) { + offset = static_cast<cmsys::ifstream::off_type>(off); + } } file.seekg(offset, std::ios::beg); // explicit ios::beg for IBM VisualAge 6 |
