aboutsummaryrefslogtreecommitdiff
path: root/contrib/pageinspect/gistfuncs.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2021-01-18 14:48:43 +0200
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2021-01-18 14:48:43 +0200
commit5d1e5c8b758770186b005a1c3888b05e37af79c5 (patch)
tree009d2b2d12ac2b7ab79b2d647d4a8e89106fc5a1 /contrib/pageinspect/gistfuncs.c
parent15251c0a60be76eedee74ac0e94b433f9acca5af (diff)
downloadpostgresql-5d1e5c8b758770186b005a1c3888b05e37af79c5.tar.gz
postgresql-5d1e5c8b758770186b005a1c3888b05e37af79c5.zip
Check for BuildIndexValueDescription returning NULL in gist_page_items
Per Coverity. BuildIndexValueDescription() cannot actually return NULL in this instance, because it only returns NULL if the user doesn't have the required privileges, and this function can only be used by superuser. But better safe than sorry.
Diffstat (limited to 'contrib/pageinspect/gistfuncs.c')
-rw-r--r--contrib/pageinspect/gistfuncs.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/contrib/pageinspect/gistfuncs.c b/contrib/pageinspect/gistfuncs.c
index 6e1ea04b346..d5da1ea839a 100644
--- a/contrib/pageinspect/gistfuncs.c
+++ b/contrib/pageinspect/gistfuncs.c
@@ -247,14 +247,20 @@ gist_page_items(PG_FUNCTION_ARGS)
index_deform_tuple(itup, RelationGetDescr(indexRel),
itup_values, itup_isnull);
- key_desc = BuildIndexValueDescription(indexRel, itup_values, itup_isnull);
-
memset(nulls, 0, sizeof(nulls));
values[0] = DatumGetInt16(offset);
values[1] = ItemPointerGetDatum(&itup->t_tid);
values[2] = Int32GetDatum((int) IndexTupleSize(itup));
- values[3] = CStringGetTextDatum(key_desc);
+
+ key_desc = BuildIndexValueDescription(indexRel, itup_values, itup_isnull);
+ if (key_desc)
+ values[3] = CStringGetTextDatum(key_desc);
+ else
+ {
+ values[3] = (Datum) 0;
+ nulls[3] = true;
+ }
tuplestore_putvalues(tupstore, tupdesc, values, nulls);
}