pgsql: Fix miscalculation of itemsafter in array_set_slice(). - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix miscalculation of itemsafter in array_set_slice().
Date
Msg-id E1PetaB-0005XB-CU@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix miscalculation of itemsafter in array_set_slice().

If the slice to be assigned to was before the existing array lower bound
(requiring at least one null element to spring into existence to fill the
gap), the code miscalculated how many entries needed to be copied from
the old array's null bitmap.  This could result in trashing the array's
data area (as seen in bug #5840 from Karsten Loesing), or worse.

This has been broken since we first allowed the behavior of assigning to
non-adjacent slices, in 8.2.  Back-patch to all affected versions.

Branch
------
REL8_4_STABLE

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=f43c4d9ec4d46e4d664af4c1a2a6345921a353fb

Modified Files
--------------
src/backend/utils/adt/arrayfuncs.c |    6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix miscalculation of itemsafter in array_set_slice().
Next
From: Tom Lane
Date:
Subject: pgsql: Fix miscalculation of itemsafter in array_set_slice().