Re: [PATCH] Fix segmentation fault and infinite loop in jsonb_{plperl,plpython}

Aleksander Alekseev <aleksander@tigerdata.com>

From: Aleksander Alekseev <aleksander@tigerdata.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-18T11:46:27Z
Lists: pgsql-hackers

Attachments

Hi Tom,

> Pushed with some comments added.

Thanks for applying the patch.

I looked around and found the same bug in hstore_plperl:

```
=# CREATE EXTENSION IF NOT EXISTS hstore_plperl CASCADE;
CREATE EXTENSION

=# CREATE OR REPLACE FUNCTION hstore_circular() RETURNS hstore
LANGUAGE plperl TRANSFORM FOR TYPE hstore AS $$
my $x;
$x = \$x;
return $x;
$$;
CREATE FUNCTION

=# SELECT hstore_circular();
^CCancel request sent
^CCancel request sent
^CCancel request sent
```

From what I can tell this is the last issue like this. Here is the patch.

Would you like to merge it as well or will it be better to start a new
thread for visibility?

-- 
Best regards,
Aleksander Alekseev

Commits

  1. hstore_plperl: Add CHECK_FOR_INTERRUPTS() in reference-unwinding loop.

  2. jsonb_plperl, jsonb_plpython: Fix unguarded recursion and loops.