Coverity : 72678, 72687, 72689
Fixed memory leaks and use of freed memory
This commit is contained in:
parent
9d466b5770
commit
7048270062
@ -338,6 +338,12 @@ static bool logmanager_init_nomutex(
|
||||
bool succp = false;
|
||||
|
||||
lm = (logmanager_t *)calloc(1, sizeof(logmanager_t));
|
||||
|
||||
if (lm == NULL)
|
||||
{
|
||||
err = 1;
|
||||
goto return_succp;
|
||||
}
|
||||
#if defined(SS_DEBUG)
|
||||
lm->lm_chk_top = CHK_NUM_LOGMANAGER;
|
||||
lm->lm_chk_tail = CHK_NUM_LOGMANAGER;
|
||||
@ -347,7 +353,15 @@ static bool logmanager_init_nomutex(
|
||||
simple_mutex_init(&msg_mutex, "Message mutex");
|
||||
#endif
|
||||
lm->lm_clientmes = skygw_message_init();
|
||||
lm->lm_logmes = skygw_message_init();
|
||||
lm->lm_logmes = skygw_message_init();
|
||||
|
||||
if (lm->lm_clientmes == NULL ||
|
||||
lm->lm_logmes == NULL)
|
||||
{
|
||||
err = 1;
|
||||
goto return_succp;
|
||||
}
|
||||
|
||||
lm->lm_enabled_logfiles |= LOGFILE_ERROR;
|
||||
lm->lm_enabled_logfiles |= LOGFILE_MESSAGE;
|
||||
#if defined(SS_DEBUG)
|
||||
@ -390,7 +404,13 @@ static bool logmanager_init_nomutex(
|
||||
fw->fwr_thread = skygw_thread_init("filewriter thr",
|
||||
thr_filewriter_fun,
|
||||
(void *)fw);
|
||||
|
||||
|
||||
if (fw->fwr_thread == NULL)
|
||||
{
|
||||
err = 1;
|
||||
goto return_succp;
|
||||
}
|
||||
|
||||
if ((err = skygw_thread_start(fw->fwr_thread)) != 0)
|
||||
{
|
||||
goto return_succp;
|
||||
@ -404,9 +424,12 @@ static bool logmanager_init_nomutex(
|
||||
return_succp:
|
||||
if (err != 0)
|
||||
{
|
||||
/** This releases memory of all created objects */
|
||||
logmanager_done_nomutex();
|
||||
fprintf(stderr, "*\n* Error : Initializing log manager failed.\n*\n");
|
||||
skygw_message_done(lm->lm_clientmes);
|
||||
skygw_message_done(lm->lm_logmes);
|
||||
|
||||
/** This releases memory of all created objects */
|
||||
logmanager_done_nomutex();
|
||||
fprintf(stderr, "*\n* Error : Initializing log manager failed.\n*\n");
|
||||
}
|
||||
return succp;
|
||||
}
|
||||
|
@ -224,12 +224,20 @@ int skygw_rwlock_init(
|
||||
int err;
|
||||
|
||||
rwl = (skygw_rwlock_t *)calloc(1, sizeof(skygw_rwlock_t));
|
||||
rwl->srw_chk_top = CHK_NUM_RWLOCK;
|
||||
rwl->srw_chk_tail = CHK_NUM_RWLOCK;
|
||||
err = pthread_rwlock_init(rwl->srw_rwlock, NULL);
|
||||
ss_dassert(err == 0);
|
||||
|
||||
if (err != 0) {
|
||||
|
||||
if (rwl == NULL)
|
||||
{
|
||||
err = 1;
|
||||
goto return_err;
|
||||
}
|
||||
rwl->srw_chk_top = CHK_NUM_RWLOCK;
|
||||
rwl->srw_chk_tail = CHK_NUM_RWLOCK;
|
||||
err = pthread_rwlock_init(rwl->srw_rwlock, NULL);
|
||||
ss_dassert(err == 0);
|
||||
|
||||
if (err != 0)
|
||||
{
|
||||
free(rwl);
|
||||
ss_dfprintf(stderr,
|
||||
"* Creating pthread_rwlock failed : %s\n",
|
||||
strerror(err));
|
||||
@ -1013,6 +1021,7 @@ skygw_thread_t* skygw_thread_init(
|
||||
|
||||
if (th->sth_mutex == NULL) {
|
||||
thread_free_memory(th, th->sth_name);
|
||||
th = NULL;
|
||||
goto return_th;
|
||||
}
|
||||
th->sth_thrfun = sth_thrfun;
|
||||
@ -1396,6 +1405,12 @@ skygw_message_t* skygw_message_init(void)
|
||||
skygw_message_t* mes;
|
||||
|
||||
mes = (skygw_message_t*)calloc(1, sizeof(skygw_message_t));
|
||||
|
||||
if (mes == NULL)
|
||||
{
|
||||
err = 1;
|
||||
goto return_mes;
|
||||
}
|
||||
mes->mes_chk_top = CHK_NUM_MESSAGE;
|
||||
mes->mes_chk_tail = CHK_NUM_MESSAGE;
|
||||
err = pthread_mutex_init(&(mes->mes_mutex), NULL);
|
||||
@ -1406,6 +1421,7 @@ skygw_message_t* skygw_message_init(void)
|
||||
"%d, %s\n",
|
||||
err,
|
||||
strerror(errno));
|
||||
free(mes);
|
||||
mes = NULL;
|
||||
goto return_mes;
|
||||
}
|
||||
@ -1417,6 +1433,8 @@ skygw_message_t* skygw_message_init(void)
|
||||
"due error %d, %s\n",
|
||||
err,
|
||||
strerror(errno));
|
||||
pthread_mutex_destroy(&mes->mes_mutex);
|
||||
free(mes);
|
||||
mes = NULL;
|
||||
goto return_mes;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user