Update tsched.c

fix buffer overflow and memory leak.
This commit is contained in:
binglongx 2019-07-21 16:00:24 -07:00 committed by GitHub
parent 401d046b70
commit 0e0fb9cd84
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 2 deletions

View File

@ -42,14 +42,15 @@ void (*taosSchedFp[128])(SSchedMsg *msg) = {0};
void *taosProcessSchedQueue(void *param);
void taosCleanUpScheduler(void *param);
void *taosInitScheduler(int queueSize, int numOfThreads, char *label) {
void *taosInitScheduler(int queueSize, int numOfThreads, const char *label) {
pthread_attr_t attr;
SSchedQueue * pSched = (SSchedQueue *)malloc(sizeof(SSchedQueue));
memset(pSched, 0, sizeof(SSchedQueue));
pSched->queueSize = queueSize;
pSched->numOfThreads = numOfThreads;
strcpy(pSched->label, label);
strncpy(pSched->label, label, sizeof(pSched->label)); // fix buffer overflow
pSched->label[sizeof(pSched->label)-1] = '\0';
if (pthread_mutex_init(&pSched->queueMutex, NULL) < 0) {
pError("init %s:queueMutex failed, reason:%s", pSched->label, strerror(errno));
@ -167,4 +168,5 @@ void taosCleanUpScheduler(void *param) {
free(pSched->queue);
free(pSched->qthread);
free(pSched); // fix memory leak
}