Forbid REVOKE on untrusted languages, and don't dump privileges of
authorPeter Eisentraut
Fri, 19 Dec 2003 14:21:56 +0000 (14:21 +0000)
committerPeter Eisentraut
Fri, 19 Dec 2003 14:21:56 +0000 (14:21 +0000)
untrusted languages (in case they sneak in).

src/backend/catalog/aclchk.c
src/bin/pg_dump/pg_dump.c

index 398e7a93ccb2b5e7ba4294584938cae0855a5df8..203cc4e4dec7dc476ed4e9660923984f71b1ef8d 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.95 2003/11/29 19:51:42 pgsql Exp $
+ *   $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.96 2003/12/19 14:21:56 petere Exp $
  *
  * NOTES
  *   See acl.h.
@@ -594,7 +594,7 @@ ExecuteGrantStmt_Language(GrantStmt *stmt)
            aclcheck_error(ACLCHECK_NO_PRIV, ACL_KIND_LANGUAGE,
                           NameStr(pg_language_tuple->lanname));
 
-       if (!pg_language_tuple->lanpltrusted && stmt->is_grant)
+       if (!pg_language_tuple->lanpltrusted)
            ereport(ERROR,
                    (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                     errmsg("language \"%s\" is not trusted", langname)));
index 7b21f65a2395c3a9bd82a19d03fac08f05e198e5..102cbc0f4acc9ba1afaaed47692fef42c743d29e 100644 (file)
@@ -12,7 +12,7 @@
  * by PostgreSQL
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.360 2003/12/06 03:00:12 tgl Exp $
+ *   $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.361 2003/12/19 14:21:56 petere Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -4633,10 +4633,11 @@ dumpProcLang(Archive *fout, ProcLangInfo *plang)
                NULL, "",
                plang->dobj.catId, 0, plang->dobj.dumpId);
 
-   dumpACL(fout, plang->dobj.catId, plang->dobj.dumpId, "LANGUAGE",
-           qlanname, plang->lanname,
-           funcInfo->pronamespace->nspname,
-           NULL, plang->lanacl);
+   if (plang->lanpltrusted)
+       dumpACL(fout, plang->dobj.catId, plang->dobj.dumpId, "LANGUAGE",
+               qlanname, plang->lanname,
+               funcInfo->pronamespace->nspname,
+               NULL, plang->lanacl);
 
    free(qlanname);