Hi, While learning gist index insert codes, I find a little issue with BufferGetLSNAtomic(). At first, it wants to get bufHdr by accessing the buffer descriptor array, as below:
BufferDesc *bufHdr = GetBufferDescriptor(buffer - 1); However, it doesn't check whether the passed buffer is a local or shared buffer. If the buffer is local, then buffer < 0; it will be cast to uint32 when passed to GetBufferDescriptor(). This may be unsafe, although no someone reports the problem. I tweak a few codes; see the attached patch. Any thoughts? -- Thanks, Tender Wang
0001-Fix-unsafe-access-BufferDescriptors.patch
Description: Binary data