Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit c185579

Browse files
Jan WieckJan Wieck
Jan Wieck
authored and
Jan Wieck
committed
Fixed backend crashing bug in apply_typmod()
Jan
1 parent e3a5ac2 commit c185579

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/backend/utils/adt/numeric.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*
66
* 1998 Jan Wieck
77
*
8-
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.6 1999/01/04 11:20:33 wieck Exp $
8+
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.7 1999/01/04 12:53:23 wieck Exp $
99
*
1010
* ----------
1111
*/
@@ -2377,7 +2377,7 @@ apply_typmod(NumericVar *var, int32 typmod)
23772377
}
23782378

23792379
i = scale + var->weight + 1;
2380-
if (var->ndigits > i)
2380+
if (i >= 0 && var->ndigits > i)
23812381
{
23822382
long carry = (var->digits[i] > 4) ? 1 : 0;
23832383

@@ -2396,6 +2396,10 @@ apply_typmod(NumericVar *var, int32 typmod)
23962396
var->weight++;
23972397
}
23982398
}
2399+
else
2400+
{
2401+
var->ndigits = MAX(0, MIN(i, var->ndigits));
2402+
}
23992403

24002404
var->rscale = scale;
24012405
var->dscale = scale;

0 commit comments

Comments
 (0)