diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2019-11-01 15:48:52 -0400 |
---|---|---|
committer | Eric Sandeen <sandeen@sandeen.net> | 2019-11-01 15:48:52 -0400 |
commit | a57cc3207accc7dbca4a5aab9d0de51254c4357b (patch) | |
tree | b294abee8cb4d825dc505816a09d3e44b7240ba4 | |
parent | b8302b7f9b470cf4ab2403f2066b2de8de0dad50 (diff) | |
download | xfsprogs-dev-a57cc3207accc7dbca4a5aab9d0de51254c4357b.tar.gz |
libfrog: fix workqueue_add error out
Don't forget to unlock before erroring out.
Coverity-id: 1454843
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
-rw-r--r-- | libfrog/workqueue.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libfrog/workqueue.c b/libfrog/workqueue.c index 07f11a7b99..a93bba3d30 100644 --- a/libfrog/workqueue.c +++ b/libfrog/workqueue.c @@ -142,8 +142,11 @@ workqueue_add( if (wq->next_item == NULL) { assert(wq->item_count == 0); ret = pthread_cond_signal(&wq->wakeup); - if (ret) - goto out_item; + if (ret) { + pthread_mutex_unlock(&wq->lock); + free(wi); + return ret; + } wq->next_item = wi; } else { wq->last_item->next = wi; @@ -153,9 +156,6 @@ workqueue_add( pthread_mutex_unlock(&wq->lock); return 0; -out_item: - free(wi); - return ret; } /* |