diff mbox

[11/37] libdecnumber: Fix decNumberSetBCD

Message ID 1397832641-10254-12-git-send-email-tommusta@gmail.com
State New
Headers show

Commit Message

Tom Musta April 18, 2014, 2:50 p.m. UTC
Fix a simple bug in the decNumberSetBCD() function.  This function
encodes a decNumber with "n" BCD digits.  The original code erroneously
computed the number of declets from the dn argument, which is the output
decNumber value, and hence may contain garbage.  Instead, the input "n"
value is used.

Signed-off-by: Tom Musta <tommusta@gmail.com>
---
 libdecnumber/decNumber.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/libdecnumber/decNumber.c b/libdecnumber/decNumber.c
index 825fde0..c4269a4 100644
--- a/libdecnumber/decNumber.c
+++ b/libdecnumber/decNumber.c
@@ -3547,7 +3547,7 @@  uByte * decNumberGetBCD(const decNumber *dn, uint8_t *bcd) {
 /* and bcd[0] zero.						      */
 /* ------------------------------------------------------------------ */
 decNumber * decNumberSetBCD(decNumber *dn, const uByte *bcd, uInt n) {
-  Unit *up=dn->lsu+D2U(dn->digits)-1;	/* -> msu [target pointer] */
+  Unit *up = dn->lsu + D2U(n) - 1;      /* -> msu [target pointer] */
   const uByte *ub=bcd;			/* -> source msd */
 
   #if DECDPUN==1			/* trivial simple copy */