|
[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 |