diff options
author | Tom Lane | 2014-05-16 19:18:09 +0000 |
---|---|---|
committer | Tom Lane | 2014-05-16 19:18:09 +0000 |
commit | 39586bc1e971c136c4487b26eb7334dbbe23b102 (patch) | |
tree | 1675d09eca0366ea64301def94754c2e1eec1646 /contrib/btree_gist/btree_macaddr.c | |
parent | 82bbb60c30dbff0633da34387ccab58d843379b5 (diff) |
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.
Diffstat (limited to 'contrib/btree_gist/btree_macaddr.c')
-rw-r--r-- | contrib/btree_gist/btree_macaddr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/btree_gist/btree_macaddr.c b/contrib/btree_gist/btree_macaddr.c index 244b95154bb..ed58a1b7429 100644 --- a/contrib/btree_gist/btree_macaddr.c +++ b/contrib/btree_gist/btree_macaddr.c @@ -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)); |