]> granicus.if.org Git - postgresql/commit
Fix access-off-end-of-array in clog.c.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Oct 2017 16:20:13 +0000 (12:20 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Oct 2017 16:20:13 +0000 (12:20 -0400)
commit6d2ef1cb99ebaa334c9f0406be142635d02c53d0
treee67f2e9cd1a2bd3695cf586d98eab3aead993871
parentc9c37e335e3a357a854fb825e4de7dcdc4c24680
Fix access-off-end-of-array in clog.c.

Sloppy loop coding in set_status_by_pages() resulted in fetching one array
element more than it should from the subxids[] array.  The odds of this
resulting in SIGSEGV are pretty small, but we've certainly seen that happen
with similar mistakes elsewhere.  While at it, we can get rid of an extra
TransactionIdToPage() calculation per loop.

Per report from David Binderman.  Back-patch to all supported branches,
since this code is quite old.

Discussion: https://postgr.es/m/HE1PR0802MB2331CBA919CBFFF0C465EB429C710@HE1PR0802MB2331.eurprd08.prod.outlook.com
src/backend/access/transam/clog.c