Check permission in task_tracker_task_status

pull/2490/head
Marco Slot 2018-11-22 02:52:11 +01:00
parent 711eef611f
commit ec957a833a
1 changed files with 3 additions and 2 deletions

View File

@ -136,7 +136,7 @@ task_tracker_task_status(PG_FUNCTION_ARGS)
WorkerTask *workerTask = NULL; WorkerTask *workerTask = NULL;
uint32 taskStatus = 0; uint32 taskStatus = 0;
char *userName = CurrentUserName();
bool taskTrackerRunning = false; bool taskTrackerRunning = false;
CheckCitusVersion(ERROR); CheckCitusVersion(ERROR);
@ -148,7 +148,8 @@ task_tracker_task_status(PG_FUNCTION_ARGS)
LWLockAcquire(&WorkerTasksSharedState->taskHashLock, LW_SHARED); LWLockAcquire(&WorkerTasksSharedState->taskHashLock, LW_SHARED);
workerTask = WorkerTasksHashFind(jobId, taskId); 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"), ereport(ERROR, (errmsg("could not find the worker task"),
errdetail("Task jobId: " UINT64_FORMAT " and taskId: %u", errdetail("Task jobId: " UINT64_FORMAT " and taskId: %u",