Re: jsonb_plperl bug

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Ivan Panchenko <wao@mail.ru>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2019-08-02T22:39:50Z
Lists: pgsql-hackers
=?UTF-8?B?SXZhbiBQYW5jaGVua28=?= <wao@mail.ru> writes:
> I have found a bug in jsonb_plperl extension. A possible fix is proposed below.
> ...
> +				/* SVt_PV without POK flag is also NULL */
> +				if(SvTYPE(in) == SVt_PV) 

Ugh.  Doesn't Perl provide some saner way to determine the type of a SV?

The core code seems to think that SvOK() is a sufficient test for an
undef.  Should we be doing that before the switch, perhaps?

(My underlying concern here is mostly about whether we have other
similar bugs.  There are a lot of places checking SvTYPE.)

			regards, tom lane



Commits

  1. Fix handling of "undef" in contrib/jsonb_plperl.