Re: thinko in convertToJsonb() - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: thinko in convertToJsonb()
Date
Msg-id CAB7nPqTQciS98NCdZ4ZzqGjJ+4N1yvKyqGLdufHJHAu7_urYQA@mail.gmail.com
Whole thread Raw
In response to thinko in convertToJsonb()  (Mark Dilger <mark@port25.com>)
Responses Re: thinko in convertToJsonb()  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Tue, Dec 9, 2014 at 11:11 AM, Mark Dilger <mark@port25.com> wrote:
> The call:
>
>         reserveFromBuffer(&buffer, sizeof(VARHDRSZ))
>
> is assuming that the size of varlena header is the same
> size as the type used to return that size, which happens
> to be so, but someone could easily change that macro
> to:
>
>         #define VARHDRSZ ((int64) sizeof(int32))
>
> And you'd want to reserve sizeof(int32), not sizeof(int64)
> in convertToJsonb.
>
> Perhaps the code really meant to say:
>
>         reserveFromBuffer(&buffer, VARHDRSZ)

Good catch! The code is indeed incorrect. Attached is a one-line patch
addressing that, I guess someone is going to pick up that sooner or
later.
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: On partitioning
Next
From: Tom Lane
Date:
Subject: Re: logical column ordering