diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-11-08 16:31:06 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-11-08 16:31:06 +0000 |
commit | 218f357d82380442da0024f839dfcfc836063667 (patch) | |
tree | c7faf378949b9bd6729c44bff428de18a618705a | |
parent | e6e893e74f97ca29f4d0acfcd2cea901d4b9701f (diff) | |
download | postgresql-218f357d82380442da0024f839dfcfc836063667.tar.gz postgresql-218f357d82380442da0024f839dfcfc836063667.zip |
CLUSTER did no permissions checking, forsooth ...
-rw-r--r-- | src/backend/tcop/utility.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 9ee7267f700..79ac7c0f157 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -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; |