Re: BUG #19545: Integer truncation of `GinTuple.keylen` causes out-of-bounds read in parallel GIN index build - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #19545: Integer truncation of `GinTuple.keylen` causes out-of-bounds read in parallel GIN index build
Date
Msg-id 954960.1789697246@sss.pgh.pa.us
Whole thread
In response to Re: BUG #19545: Integer truncation of `GinTuple.keylen` causes out-of-bounds read in parallel GIN index build  (Ewan Young <kdbase.hack@gmail.com>)
Responses Re: BUG #19545: Integer truncation of `GinTuple.keylen` causes out-of-bounds read in parallel GIN index build
List pgsql-bugs
Peter Eisentraut <peter@eisentraut.org> writes:
> I have committed these, thanks.

The ABI-compliance-checking buildfarm animals have all been unhappy
since this went in:

'struct GinTuple' changed:
  type size changed from 16 to 24 (in bytes)
  1 data member deletion:
    'uint16 keylen', at offset 6 (in bytes)
  1 data member insertion:
    'union {Size keylen; double force_align_d; int64 force_align_i64;} u', at offset 8 (in bytes)
  there are data member changes:
    'int16 typlen' offset changed from 8 to 16 (in bytes) (by +8 bytes)
    'bool typbyval' offset changed from 10 to 18 (in bytes) (by +8 bytes)
    'signed char category' offset changed from 11 to 19 (in bytes) (by +8 bytes)
    'int nitems' offset changed from 12 to 20 (in bytes) (by +8 bytes)
    'char data[]' offset changed from 16 to 24 (in bytes) (by +8 bytes)

Is it really okay to change this struct in v18?
If so, the .abi-compliance-history files need to be updated.

            regards, tom lane



pgsql-bugs by date:

Previous
From: Tender Wang
Date:
Subject: Re: wrong results: merge when not matched by source
Next
From: PG Bug reporting form
Date:
Subject: BUG #19693: JSON_VALUE/JSON_QUERY PASSING a toasted text value reads the toast pointer instead of the text