From 600dc4c0da3b8c094ccc1ae75b47c8320898c714 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sat, 3 Sep 2016 14:18:55 -0400
Subject: [PATCH] Fix multiple bugs in numeric_poly_deserialize().

These were evidently introduced by yesterday's commit 9cca11c91,
which perhaps needs more review than it got.

Per report from Andreas Seltenreich and additional examination
of nearby code.

Report: <87oa45qfwq.fsf@credativ.de>
---
 src/backend/utils/adt/numeric.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 27efd310abb..384e672c832 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -4193,11 +4193,11 @@ numeric_poly_deserialize(PG_FUNCTION_ARGS)
 	accum_sum_add(&result->sumX, &sumX_var);
 #endif
 
-	set_var_from_num(DatumGetNumeric(sumX2), &sumX2_var);
+	init_var_from_num(DatumGetNumeric(sumX2), &sumX2_var);
 #ifdef HAVE_INT128
 	numericvar_to_int128(&sumX2_var, &result->sumX2);
 #else
-	accum_sum_add(&result->sumX2, &sumX_var);
+	accum_sum_add(&result->sumX2, &sumX2_var);
 #endif
 
 	pq_getmsgend(&buf);
-- 
GitLab