Fix a second cause of undersized pallocs for btree_gist indexes on macaddr.

gbt_macad_union also allocated 12-byte structs where we really need 16.

Per report from Andres Freund.  No back-patch since there's no current
risk of a real problem.
This commit is contained in:
Tom Lane 2014-05-16 15:18:09 -04:00
parent 82bbb60c30
commit 39586bc1e9
1 changed files with 2 additions and 1 deletions

View File

@ -12,6 +12,7 @@ typedef struct
{
macaddr lower;
macaddr upper;
char pad[4]; /* make struct size = sizeof(gbtreekey16) */
} macKEY;
/*
@ -143,7 +144,7 @@ Datum
gbt_macad_union(PG_FUNCTION_ARGS)
{
GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0);
void *out = palloc(sizeof(macKEY));
void *out = palloc0(sizeof(macKEY));
*(int *) PG_GETARG_POINTER(1) = sizeof(macKEY);
PG_RETURN_POINTER(gbt_num_union((void *) out, entryvec, &tinfo));