Fix to Coverity issue 72769

This commit is contained in:
VilhoRaatikka
2014-11-05 17:50:07 +02:00
parent 86cd6ec0e9
commit 9728502522

View File

@ -204,16 +204,30 @@ int skygw_rwlock_unlock(
int skygw_rwlock_destroy( int skygw_rwlock_destroy(
skygw_rwlock_t* rwlock) skygw_rwlock_t* rwlock)
{ {
int err = pthread_rwlock_destroy(rwlock->srw_rwlock); int err;
/** Lock */
if (err == 0) { if ((err = pthread_rwlock_wrlock(rwlock->srw_rwlock)) != 0)
{
fprintf(stderr,
"* Error : pthread_rwlock_wrlock failed due to %d, %s.\n",
err,
strerror(err));
goto retblock;
}
/** Clean the struct */
rwlock->srw_rwlock_thr = 0; rwlock->srw_rwlock_thr = 0;
rwlock->srw_rwlock = NULL; rwlock->srw_rwlock = NULL;
} else { /** Unlock */
ss_dfprintf(stderr, pthread_rwlock_unlock(rwlock->srw_rwlock);
"* pthread_rwlock_destroy : %s\n", /** Destroy */
if ((err = pthread_rwlock_destroy(rwlock->srw_rwlock)) != 0)
{
fprintf(stderr,
"* Error : pthread_rwlock_destroy failed due to %d,%s\n",
err,
strerror(err)); strerror(err));
} }
retblock:
return err; return err;
} }