[lvm-devel] LVM2/daemons/dmeventd dmeventd.c

zkabelac at sourceware.org zkabelac at sourceware.org
Tue Mar 30 14:37:28 UTC 2010


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2010-03-30 14:37:28

Modified files:
	daemons/dmeventd: dmeventd.c 

Log message:
	Fix resouce leak in error path
	
	If the error path of _register_for_event() calls _free_thread_status()
	_lib_put() call is missing.
	To make thing simpler move this _lib_put() into common error path code.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/dmeventd/dmeventd.c.diff?cvsroot=lvm2&r1=1.55&r2=1.56

--- LVM2/daemons/dmeventd/dmeventd.c	2010/03/30 14:35:40	1.55
+++ LVM2/daemons/dmeventd/dmeventd.c	2010/03/30 14:37:28	1.56
@@ -243,8 +243,10 @@
 	return ret;
 }
 
+static void _lib_put(struct dso_data *data);
 static void _free_thread_status(struct thread_status *thread)
 {
+	_lib_put(thread->dso_data);
 	if (thread->current_task)
 		dm_task_destroy(thread->current_task);
 	dm_free(thread->device.uuid);
@@ -1481,7 +1483,6 @@
 		if (thread->status == DM_THREAD_DONE) {
 			dm_list_del(l);
 			pthread_join(thread->thread, NULL);
-			_lib_put(thread->dso_data);
 			_free_thread_status(thread);
 		}
 	}




More information about the lvm-devel mailing list