From ec957a833a96a0058007748261bc5bc38939e72e Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Thu, 22 Nov 2018 02:52:11 +0100 Subject: [PATCH] Check permission in task_tracker_task_status --- src/backend/distributed/worker/task_tracker_protocol.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/backend/distributed/worker/task_tracker_protocol.c b/src/backend/distributed/worker/task_tracker_protocol.c index 71a29b1ed..2cd19c4d2 100644 --- a/src/backend/distributed/worker/task_tracker_protocol.c +++ b/src/backend/distributed/worker/task_tracker_protocol.c @@ -136,7 +136,7 @@ task_tracker_task_status(PG_FUNCTION_ARGS) WorkerTask *workerTask = NULL; uint32 taskStatus = 0; - + char *userName = CurrentUserName(); bool taskTrackerRunning = false; CheckCitusVersion(ERROR); @@ -148,7 +148,8 @@ task_tracker_task_status(PG_FUNCTION_ARGS) LWLockAcquire(&WorkerTasksSharedState->taskHashLock, LW_SHARED); workerTask = WorkerTasksHashFind(jobId, taskId); - if (workerTask == NULL) + if (workerTask == NULL || + (!superuser() && strncmp(userName, workerTask->userName, NAMEDATALEN) != 0)) { ereport(ERROR, (errmsg("could not find the worker task"), errdetail("Task jobId: " UINT64_FORMAT " and taskId: %u",