Fixes for Coverity bugs

This commit is contained in:
Mark Riddoch
2014-11-20 16:04:22 +00:00
parent 511d93f266
commit 5fa87776b0
3 changed files with 37 additions and 34 deletions

View File

@ -1210,46 +1210,48 @@ dcb_close(DCB *dcb)
if (dcb->state == DCB_STATE_POLLING) if (dcb->state == DCB_STATE_POLLING)
{ {
if (dcb->fd != -1) if (dcb->fd != -1)
{
rc = poll_remove_dcb(dcb); rc = poll_remove_dcb(dcb);
if (rc == 0) { if (rc == 0) {
LOGIF(LD, (skygw_log_write( LOGIF(LD, (skygw_log_write(
LOGFILE_DEBUG, LOGFILE_DEBUG,
"%lu [dcb_close] Removed dcb %p in state %s from " "%lu [dcb_close] Removed dcb %p in state %s from "
"poll set.", "poll set.",
pthread_self(), pthread_self(),
dcb, dcb,
STRDCBSTATE(dcb->state)))); STRDCBSTATE(dcb->state))));
} else { } else {
LOGIF(LE, (skygw_log_write( LOGIF(LE, (skygw_log_write(
LOGFILE_ERROR, LOGFILE_ERROR,
"Error : Removing DCB fd == %d in state %s from " "Error : Removing DCB fd == %d in state %s from "
"poll set failed.", "poll set failed.",
dcb->fd, dcb->fd,
STRDCBSTATE(dcb->state)))); STRDCBSTATE(dcb->state))));
}
if (rc == 0)
{
/**
* close protocol and router session
*/
if (dcb->func.close != NULL)
{
dcb->func.close(dcb);
} }
dcb_call_callback(dcb, DCB_REASON_CLOSE);
if (rc == 0)
if (dcb->state == DCB_STATE_NOPOLLING)
{ {
dcb_add_to_zombieslist(dcb); /**
* close protocol and router session
*/
if (dcb->func.close != NULL)
{
dcb->func.close(dcb);
}
dcb_call_callback(dcb, DCB_REASON_CLOSE);
if (dcb->state == DCB_STATE_NOPOLLING)
{
dcb_add_to_zombieslist(dcb);
}
} }
} }
ss_dassert(dcb->state == DCB_STATE_NOPOLLING ||
dcb->state == DCB_STATE_ZOMBIE);
} }
ss_dassert(dcb->state == DCB_STATE_NOPOLLING ||
dcb->state == DCB_STATE_ZOMBIE);
} }
/** /**

View File

@ -1444,7 +1444,8 @@ void
dShowEventQ(DCB *pdcb) dShowEventQ(DCB *pdcb)
{ {
DCB *dcb; DCB *dcb;
char *tmp1, *tmp2; char *tmp1, *tmp2;
spinlock_acquire(&pollqlock); spinlock_acquire(&pollqlock);
if (eventq == NULL) if (eventq == NULL)
{ {

View File

@ -363,7 +363,7 @@ unsigned char encrypted[80];
return NULL; return NULL;
memset(padded_passwd, 0, 80); memset(padded_passwd, 0, 80);
strncpy((char *)padded_passwd, password, 80); strncpy((char *)padded_passwd, password, 79);
padded_len = ((strlen(password) / AES_BLOCK_SIZE) + 1) * AES_BLOCK_SIZE; padded_len = ((strlen(password) / AES_BLOCK_SIZE) + 1) * AES_BLOCK_SIZE;
AES_set_encrypt_key(keys->enckey, 8 * MAXSCALE_KEYLEN, &aeskey); AES_set_encrypt_key(keys->enckey, 8 * MAXSCALE_KEYLEN, &aeskey);