 
	
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: fix mutex initialization
 Roger Pau Monne writes ("[Xen-devel] [PATCH] libxl: fix mutex initialization"):
> +    pthread_mutexattr_t attr;
> +
> +    if (pthread_mutexattr_init(&attr) != 0) {
> +        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, 
> +                         "Failed to init mutex attributes\n");
> +        return ERROR_FAIL;
> +    }
> +    if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE) != 0) {
> +        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, 
> +                         "Failed to set mutex attributes\n");
> +        return ERROR_FAIL;
> +    }
> +    if (pthread_mutex_init(lock, &attr) != 0) {
> +        LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, 
> +                         "Failed to init mutex\n");
> +        return ERROR_FAIL;
> +    }
> +    return 0;
This leaks the contents of attr.  You need to call
pthread_mutexattr_destroy on all the exit paths (except the one where
_init failed).
What a horrible API for passing in some trivial flags!
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 | 
|  | Lists.xenproject.org is hosted with RackSpace, monitoring our |