[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] threadpool: Check for NULL jobdata



On 12/26/2010 11:29 PM, Hu Tao wrote:
> Do nothing if caller passes NULL as jobdata to virThreadPoolSendJob().
> ---
>  src/util/threadpool.c |    3 +++
>  src/util/threadpool.h |    1 -
>  2 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/src/util/threadpool.c b/src/util/threadpool.c
> index 1213862..2907478 100644
> --- a/src/util/threadpool.c
> +++ b/src/util/threadpool.c
> @@ -192,6 +192,9 @@ int virThreadPoolSendJob(virThreadPoolPtr pool,
>  {
>      virThreadPoolJobPtr job;
>  
> +    if (!jobData)
> +        return -1;
> +

This hunk is wrong.  jobData is opaque - we cannot assume anything about
it's meaning.  A job may very well have something to do even with a NULL
job data, and refusing to run a job just because one of its two opaque
arguments is NULL is no better than marking the parameter as
ATTRIBUTE_NONNULL when registering the job.

> +++ b/src/util/threadpool.h
> @@ -42,7 +42,6 @@ void virThreadPoolFree(virThreadPoolPtr pool);
>  
>  int virThreadPoolSendJob(virThreadPoolPtr pool,
>                           void *jobdata) ATTRIBUTE_NONNULL(1)
> -                                        ATTRIBUTE_NONNULL(2)
>                                          ATTRIBUTE_RETURN_CHECK;

But this hunk is okay.  I've applied just this hunk, as it is
technically a bug fix (over-strict compilation markings), and minimal
impact for inclusion in 0.8.7.

-- 
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]