diff options
Diffstat (limited to 'sdext/source/pdfimport/wrapper/wrapper.cxx')
-rw-r--r-- | sdext/source/pdfimport/wrapper/wrapper.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sdext/source/pdfimport/wrapper/wrapper.cxx b/sdext/source/pdfimport/wrapper/wrapper.cxx index 5672249c3e15..f2439a5bb83c 100644 --- a/sdext/source/pdfimport/wrapper/wrapper.cxx +++ b/sdext/source/pdfimport/wrapper/wrapper.cxx @@ -261,13 +261,19 @@ std::string_view LineParser::readNextToken() void LineParser::readInt32( sal_Int32& o_Value ) { std::string_view tok = readNextToken(); - o_Value = rtl_str_toInt32_WithLength(tok.data(), 10, tok.size()); + sal_Int64 n = rtl_str_toInt64_WithLength(tok.data(), 10, tok.size()); + if (n < SAL_MIN_INT32 || n > SAL_MAX_INT32) + n = 0; + o_Value = n; } sal_Int32 LineParser::readInt32() { std::string_view tok = readNextToken(); - return rtl_str_toInt32_WithLength(tok.data(), 10, tok.size()); + sal_Int64 n =rtl_str_toInt64_WithLength(tok.data(), 10, tok.size()); + if (n < SAL_MIN_INT32 || n > SAL_MAX_INT32) + n = 0; + return n; } void LineParser::readInt64( sal_Int64& o_Value ) |