aboutsummaryrefslogtreecommitdiff
path: root/src/include/fmgr.h
diff options
context:
space:
mode:
authorNoah Misch <noah@leadboat.com>2014-02-17 09:33:31 -0500
committerNoah Misch <noah@leadboat.com>2014-02-17 09:33:31 -0500
commit537cbd35c893e67a63c59bc636c3e888bd228bc7 (patch)
tree0315dbc61a19a835e3c446122c337655ad8794d4 /src/include/fmgr.h
parentfea164a72a7bfd50d77ba5fb418d357f8f2bb7d0 (diff)
downloadpostgresql-537cbd35c893e67a63c59bc636c3e888bd228bc7.tar.gz
postgresql-537cbd35c893e67a63c59bc636c3e888bd228bc7.zip
Prevent privilege escalation in explicit calls to PL validators.
The primary role of PL validators is to be called implicitly during CREATE FUNCTION, but they are also normal functions that a user can call explicitly. Add a permissions check to each validator to ensure that a user cannot use explicit validator calls to achieve things he could not otherwise achieve. Back-patch to 8.4 (all supported versions). Non-core procedural language extensions ought to make the same two-line change to their own validators. Andres Freund, reviewed by Tom Lane and Noah Misch. Security: CVE-2014-0061
Diffstat (limited to 'src/include/fmgr.h')
-rw-r--r--src/include/fmgr.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/include/fmgr.h b/src/include/fmgr.h
index 455c0890840..aed81cdc26b 100644
--- a/src/include/fmgr.h
+++ b/src/include/fmgr.h
@@ -629,6 +629,7 @@ extern Oid get_call_expr_argtype(fmNodePtr expr, int argnum);
extern bool get_fn_expr_arg_stable(FmgrInfo *flinfo, int argnum);
extern bool get_call_expr_arg_stable(fmNodePtr expr, int argnum);
extern bool get_fn_expr_variadic(FmgrInfo *flinfo);
+extern bool CheckFunctionValidatorAccess(Oid validatorOid, Oid functionOid);
/*
* Routines in dfmgr.c