pgsql: Fix miscalculation of itemsafter in array_set_slice().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Fix miscalculation of itemsafter in array_set_slice().
Date: 2011-01-17 18:13:35
Message-ID: E1PetaB-0005XC-FP@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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_3_STABLE

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

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

Browse pgsql-committers by date

  From Date Subject
Next Message Peter Eisentraut 2011-01-17 19:49:12 pgsql: Use HTABs instead of Python dictionary objects to cache procedur
Previous Message Alvaro Herrera 2011-01-17 16:07:52 pgsql: Increment Py_None refcount for NULL array elements