未验证 提交 0e0fb9cd 编写于 作者: B binglongx 提交者: GitHub

Update tsched.c

fix buffer overflow and memory leak.
上级 401d046b
......@@ -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
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册