[libvirt] [PATCH] libvirtd: avoid false-positive NULL-deref warning from clang
Jim Meyering
jim at meyering.net
Mon Mar 1 20:44:24 UTC 2010
Eric Blake wrote:
> * daemon/libvirtd.c (qemudWorker): Rewrite loop to silence a
> warning.
> ---
>
> Here's the rewrite in patch form.
>
> daemon/libvirtd.c | 9 ++++-----
> 1 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> index 9bdbecb..9e16883 100644
> --- a/daemon/libvirtd.c
> +++ b/daemon/libvirtd.c
> @@ -1502,16 +1502,15 @@ static void *qemudWorker(void *data)
> struct qemud_client_message *msg;
>
> virMutexLock(&server->lock);
> - while (((client = qemudPendingJob(server)) == NULL) &&
> - !worker->quitRequest) {
> - if (virCondWait(&server->job, &server->lock) < 0) {
> + while ((client = qemudPendingJob(server)) == NULL) {
> + if (worker->quitRequest ||
> + virCondWait(&server->job, &server->lock) < 0) {
> virMutexUnlock(&server->lock);
> return NULL;
> }
> }
> if (worker->quitRequest) {
> - if (client)
> - virMutexUnlock(&client->lock);
> + virMutexUnlock(&client->lock);
> virMutexUnlock(&server->lock);
> return NULL;
> }
That's just what I'd tested.
ACK.
Thanks again.
I'll push this tomorrow if no one beats me to it.
More information about the libvir-list
mailing list