]> granicus.if.org Git - postgresql/commit
Do not access indclass through Form_pg_index
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 27 Jan 2012 18:08:34 +0000 (20:08 +0200)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 27 Jan 2012 18:08:34 +0000 (20:08 +0200)
commit8a3f745f160d8334ad978676828d3926ac949f43
treecccdd60563e196b388dab9b915f25f7548a11614
parenteb6af016fc04392c41106ac866072914bf66ecd0
Do not access indclass through Form_pg_index

Normally, accessing variable-length members of catalog structures past
the first one doesn't work at all.  Here, it happened to work because
indnatts was checked to be 1, and so the defined FormData_pg_index
layout, using int2vector[1] and oidvector[1] for variable-length
arrays, happened to match the actual memory layout.  But it's a very
fragile assumption, and it's not in a performance-critical path, so
code it properly using heap_getattr() instead.

bug analysis by Tom Lane
src/backend/utils/cache/relcache.c