has_language_privilege returns incorrect answer for non-superuser - Mailing list pgsql-hackers

From Joe Conway
Subject has_language_privilege returns incorrect answer for non-superuser
Date
Msg-id 4FFB842C.6090804@joeconway.com
Whole thread Raw
Responses Re: has_language_privilege returns incorrect answer for non-superuser  (Magnus Hagander <magnus@hagander.net>)
Re: has_language_privilege returns incorrect answer for non-superuser  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
I noticed today that has_language_privilege() returns incorrect answer
for non-superuser, e.g.:

8<---------------------------------------------------
select has_language_privilege('nobody',                             'plperlu',
'usage');has_language_privilege
------------------------t
(1 row)

test1=# \c - nobody
You are now connected to database "test1" as user "nobody".

create function f() returns text as $$ $$ language plperlu;
ERROR:  permission denied for language plperlu
8<---------------------------------------------------

I verified this behavior on head as well as 9.1 (didn't bother looking
any further back). Looks like the reason is that CreateFunction()
correctly checks lanpltrusted, whereas pg_language_aclmask() does not.

Seems like a bug to me -- opinions?

Joe

-- 
Joe Conway
credativ LLC: http://www.credativ.us
Linux, PostgreSQL, and general Open Source
Training, Service, Consulting, & 24x7 Support



pgsql-hackers by date:

Previous
From: Alexander Korotkov
Date:
Subject: Testing of various opclasses for ranges
Next
From: Bruce Momjian
Date:
Subject: Use of rsync for data directory copying