Skip to content

Commit 1ca717f

Browse files
committed
plpython security and error handling fixes, from
Kevin Jacobs and Brad McLean.
1 parent b0df7a6 commit 1ca717f

File tree

4 files changed

+272
-57
lines changed

4 files changed

+272
-57
lines changed

src/pl/plpython/error.expected

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,36 @@
11
SELECT invalid_type_uncaught('rick');
2-
ERROR: plpython: Call of function `__plpython_procedure_invalid_type_uncaught_1175341' failed.
2+
NOTICE: plpython: in function __plpython_procedure_invalid_type_uncaught_49801:
33
plpy.SPIError: Cache lookup for type `test' failed.
44
SELECT invalid_type_caught('rick');
5-
NOTICE: ("Cache lookup for type `test' failed.",)
6-
invalid_type_caught
7-
---------------------
8-
9-
(1 row)
10-
5+
NOTICE: plpython: in function __plpython_procedure_invalid_type_caught_49802:
6+
plpy.SPIError: Cache lookup for type `test' failed.
117
SELECT invalid_type_reraised('rick');
12-
ERROR: plpython: Call of function `__plpython_procedure_invalid_type_reraised_1175343' failed.
13-
plpy.Error: ("Cache lookup for type `test' failed.",)
8+
NOTICE: plpython: in function __plpython_procedure_invalid_type_reraised_49803:
9+
plpy.SPIError: Cache lookup for type `test' failed.
1410
SELECT valid_type('rick');
1511
valid_type
1612
------------
1713

1814
(1 row)
1915

16+
SELECT read_file('/etc/passwd');
17+
ERROR: plpython: Call of function `__plpython_procedure_read_file_49809' failed.
18+
exceptions.IOError: can't open files in restricted mode
19+
SELECT write_file('/tmp/plpython','This is very bad');
20+
ERROR: plpython: Call of function `__plpython_procedure_write_file_49810' failed.
21+
exceptions.IOError: can't open files in restricted mode
22+
SELECT getpid();
23+
ERROR: plpython: Call of function `__plpython_procedure_getpid_49811' failed.
24+
exceptions.AttributeError: getpid
25+
SELECT uname();
26+
ERROR: plpython: Call of function `__plpython_procedure_uname_49812' failed.
27+
exceptions.AttributeError: uname
28+
SELECT sys_exit();
29+
ERROR: plpython: Call of function `__plpython_procedure_sys_exit_49813' failed.
30+
exceptions.AttributeError: exit
31+
SELECT sys_argv();
32+
sys_argv
33+
----------------
34+
['RESTRICTED']
35+
(1 row)
36+

0 commit comments

Comments
 (0)