From 98f6c00dad96d3150a9b969a0ee67addc78ac5f0 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 21 Oct 2020 15:29:28 -0400 Subject: Protect numeric conversion against user's locale (fixes #459) --- libqpdf/QUtil.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'libqpdf/QUtil.cc') diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc index 072a939c..366365f1 100644 --- a/libqpdf/QUtil.cc +++ b/libqpdf/QUtil.cc @@ -21,6 +21,7 @@ #include #include #include +#include #ifndef QPDF_NO_WCHAR_T # include #endif @@ -267,6 +268,7 @@ int_to_string_base_internal(T num, int base, int length) "int_to_string_base called with unsupported base"); } std::ostringstream buf; + buf.imbue(std::locale::classic()); buf << std::setbase(base) << std::nouppercase << num; std::string result; int str_length = QIntC::to_int(buf.str().length()); @@ -318,6 +320,7 @@ QUtil::double_to_string(double num, int decimal_places) decimal_places = 6; } std::ostringstream buf; + buf.imbue(std::locale::classic()); buf << std::setprecision(decimal_places) << std::fixed << num; return buf.str(); } -- cgit v1.2.3-54-g00ecf