diff --git a/src/modp_numtoa.c b/src/modp_numtoa.c index e7b074d876..ab6b2c95e8 100644 --- a/src/modp_numtoa.c +++ b/src/modp_numtoa.c @@ -57,7 +57,7 @@ void modp_uitoa10(uint32_t value, char* str) void modp_litoa10(int64_t value, char* str) { char* wstr=str; - uint64_t uvalue = (value < 0) ? -value : value; + uint64_t uvalue = (value < 0) ? (value == INT64_MIN ? (uint64_t)(INT64_MAX) + 1 : -value) : value; // Conversion. Number is reversed. do *wstr++ = (char)(48 + (uvalue % 10)); while(uvalue /= 10);