CLUSTER did no permissions checking, forsooth ...
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Nov 2000 16:31:06 +0000 (16:31 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 8 Nov 2000 16:31:06 +0000 (16:31 +0000)
src/backend/tcop/utility.c

index 9ee7267f7009bebd85b21647472c9d288bfcdd27..79ac7c0f1573382a866a076035985fbb4fc6290e 100644 (file)
@@ -10,7 +10,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.100 2000/11/07 02:17:50 tgl Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.101 2000/11/08 16:31:06 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -670,7 +670,14 @@ ProcessUtility(Node *parsetree,
 
                set_ps_display(commandTag = "CLUSTER");
 
-               cluster(stmt->relname, stmt->indexname);
+               relname = stmt->relname;
+               if (IsSystemRelationName(relname))
+                   elog(ERROR, "CLUSTER: relation \"%s\" is a system catalog",
+                        relname);
+               if (!pg_ownercheck(GetUserId(), relname, RELNAME))
+                   elog(ERROR, "permission denied");
+
+               cluster(relname, stmt->indexname);
            }
            break;