Fixed bug with number of digits for numeric being calculated wrong, which led to...
authorSvetlana Derevyanko <[email protected]>
Thu, 7 Nov 2024 18:47:23 +0000 (21:47 +0300)
committerChristoph Berg <[email protected]>
Tue, 15 Apr 2025 13:05:15 +0000 (13:05 +0000)
Close #32.

decode.c

index 37f723f658b51084c8468777291bb6b75fd32421..9755ec317cfbfdd47c1800010c9837bae43f39c7 100644 (file)
--- a/decode.c
+++ b/decode.c
@@ -430,7 +430,7 @@ CopyAppendNumeric(const char *buffer, int num_size)
                }
                else
                {
-                       ndigits = num_size / sizeof(NumericDigit);
+                       ndigits = (num_size - NUMERIC_HEADER_SIZE(num)) / sizeof(NumericDigit);
                        digits = (NumericDigit *) ((char *) num + NUMERIC_HEADER_SIZE(num));
                        i = (weight + 1) * DEC_DIGITS;
                        if (i <= 0)