libevdev-1.13.6-1.fc44

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-401): [#def1]
libevdev-1.13.6/libevdev/libevdev-int.h:292:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  290|   
#  291|   	switch(type) {
#  292|-> 		max_mask(ABS, abs);
#  293|   		max_mask(REL, rel);
#  294|   		max_mask(KEY, key);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
libevdev-1.13.6/libevdev/libevdev-int.h:293:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  291|   	switch(type) {
#  292|   		max_mask(ABS, abs);
#  293|-> 		max_mask(REL, rel);
#  294|   		max_mask(KEY, key);
#  295|   		max_mask(LED, led);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def3]
libevdev-1.13.6/libevdev/libevdev-int.h:294:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  292|   		max_mask(ABS, abs);
#  293|   		max_mask(REL, rel);
#  294|-> 		max_mask(KEY, key);
#  295|   		max_mask(LED, led);
#  296|   		max_mask(MSC, msc);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def4]
libevdev-1.13.6/libevdev/libevdev-int.h:295:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  293|   		max_mask(REL, rel);
#  294|   		max_mask(KEY, key);
#  295|-> 		max_mask(LED, led);
#  296|   		max_mask(MSC, msc);
#  297|   		max_mask(SW, sw);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def5]
libevdev-1.13.6/libevdev/libevdev-int.h:296:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  294|   		max_mask(KEY, key);
#  295|   		max_mask(LED, led);
#  296|-> 		max_mask(MSC, msc);
#  297|   		max_mask(SW, sw);
#  298|   		max_mask(FF, ff);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def6]
libevdev-1.13.6/libevdev/libevdev-int.h:297:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  295|   		max_mask(LED, led);
#  296|   		max_mask(MSC, msc);
#  297|-> 		max_mask(SW, sw);
#  298|   		max_mask(FF, ff);
#  299|   		max_mask(REP, rep);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def7]
libevdev-1.13.6/libevdev/libevdev-uinput.c:71:22: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#   69|   		const unsigned long *mask;
#   70|   
#   71|-> 		if (!libevdev_has_event_type(dev, type))
#   72|   			continue;
#   73|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def8]
libevdev-1.13.6/libevdev/libevdev-uinput.c:317:29: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  315|   	memset(&uidev, 0, sizeof(uidev));
#  316|   
#  317|-> 	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|   	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def9]
libevdev-1.13.6/libevdev/libevdev-uinput.c:317:29: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  315|   	memset(&uidev, 0, sizeof(uidev));
#  316|   
#  317|-> 	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|   	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def10]
libevdev-1.13.6/libevdev/libevdev-uinput.c:318:9: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  316|   
#  317|   	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|-> 	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);
#  320|   	uidev.id.bustype = libevdev_get_id_bustype(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def11]
libevdev-1.13.6/libevdev/libevdev-uinput.c:318:27: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  316|   
#  317|   	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|-> 	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);
#  320|   	uidev.id.bustype = libevdev_get_id_bustype(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def12]
libevdev-1.13.6/libevdev/libevdev-uinput.c:318:27: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  316|   
#  317|   	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|-> 	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);
#  320|   	uidev.id.bustype = libevdev_get_id_bustype(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def13]
libevdev-1.13.6/libevdev/libevdev-uinput.c:319:28: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  317|   	strncpy(uidev.name, libevdev_get_name(dev), UINPUT_MAX_NAME_SIZE - 1);
#  318|   	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|-> 	uidev.id.product = libevdev_get_id_product(dev);
#  320|   	uidev.id.bustype = libevdev_get_id_bustype(dev);
#  321|   	uidev.id.version = libevdev_get_id_version(dev);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def14]
libevdev-1.13.6/libevdev/libevdev-uinput.c:320:28: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  318|   	uidev.id.vendor = libevdev_get_id_vendor(dev);
#  319|   	uidev.id.product = libevdev_get_id_product(dev);
#  320|-> 	uidev.id.bustype = libevdev_get_id_bustype(dev);
#  321|   	uidev.id.version = libevdev_get_id_version(dev);
#  322|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def15]
libevdev-1.13.6/libevdev/libevdev-uinput.c:321:28: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:397:22: call_function: calling ‘uinput_create_write’ from ‘libevdev_uinput_create_from_device’
#  319|   	uidev.id.product = libevdev_get_id_product(dev);
#  320|   	uidev.id.bustype = libevdev_get_id_bustype(dev);
#  321|-> 	uidev.id.version = libevdev_get_id_version(dev);
#  322|   
#  323|   	if (set_evbits(dev, fd, &uidev) != 0)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def16]
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_true: following ‘true’ branch (when ‘fd == -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: throw: if ‘open’ throws an exception...
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: danger: ‘<unknown>’ leaks here; was allocated at [(6)](sarif:/runs/0/results/19/codeFlows/0/threadFlows/0/locations/5)
#  380|   
#  381|   	if (fd == LIBEVDEV_UINPUT_OPEN_MANAGED) {
#  382|-> 		fd = open("/dev/uinput", O_RDWR|O_CLOEXEC);
#  383|   		if (fd < 0)
#  384|   			goto error;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def17]
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_true: following ‘true’ branch (when ‘fd == -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: throw: if ‘open’ throws an exception...
libevdev-1.13.6/libevdev/libevdev-uinput.c:382:22: danger: ‘alloc_uinput_device(libevdev_get_name(dev))’ leaks here; was allocated at [(4)](sarif:/runs/0/results/20/codeFlows/0/threadFlows/0/locations/3)
#  380|   
#  381|   	if (fd == LIBEVDEV_UINPUT_OPEN_MANAGED) {
#  382|-> 		fd = open("/dev/uinput", O_RDWR|O_CLOEXEC);
#  383|   		if (fd < 0)
#  384|   			goto error;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def18]
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_true: following ‘true’ branch (when ‘fd < 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: throw: if ‘_libevdev_log_priority’ throws an exception...
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: danger: ‘<unknown>’ leaks here; was allocated at [(6)](sarif:/runs/0/results/21/codeFlows/0/threadFlows/0/locations/5)
#  386|   		new_device->fd_is_managed = 1;
#  387|   	} else if (fd < 0) {
#  388|-> 		log_bug(NULL, "Invalid fd %d\n", fd);
#  389|   		errno = EBADF;
#  390|   		goto error;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def19]
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_true: following ‘true’ branch (when ‘fd < 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: throw: if ‘_libevdev_log_priority’ throws an exception...
libevdev-1.13.6/libevdev/libevdev-uinput.c:388:17: danger: ‘alloc_uinput_device(libevdev_get_name(dev))’ leaks here; was allocated at [(4)](sarif:/runs/0/results/22/codeFlows/0/threadFlows/0/locations/3)
#  386|   		new_device->fd_is_managed = 1;
#  387|   	} else if (fd < 0) {
#  388|-> 		log_bug(NULL, "Invalid fd %d\n", fd);
#  389|   		errno = EBADF;
#  390|   		goto error;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def20]
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: warning[-Wanalyzer-malloc-leak]: leak of ‘alloc_uinput_device(libevdev_get_name(dev))’
libevdev-1.13.6/libevdev/libevdev-uinput.c:370:1: enter_function: entry to ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: call_function: calling ‘alloc_uinput_device’ from ‘libevdev_uinput_create_from_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:377:22: return_function: returning to ‘libevdev_uinput_create_from_device’ from ‘alloc_uinput_device’
libevdev-1.13.6/libevdev/libevdev-uinput.c:378:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:381:12: branch_false: following ‘false’ branch (when ‘fd != -2’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:387:19: branch_false: following ‘false’ branch (when ‘fd >= 0’)...
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:12: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:394:13: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:393:13: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev-uinput.c:395:22: call_function: calling ‘uinput_create_DEV_SETUP’ from ‘libevdev_uinput_create_from_device’
#  392|   
#  393|   	if (ioctl(fd, UI_GET_VERSION, &uinput_version) == 0 &&
#  394|-> 	    uinput_version >= 5)
#  395|   		rc = uinput_create_DEV_SETUP(dev, fd, new_device);
#  396|   	else

Error: GCC_ANALYZER_WARNING (CWE-404): [#def21]
libevdev-1.13.6/libevdev/libevdev.c:191:17: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libevdev-1.13.6/libevdev/libevdev.c:1872:1: enter_function: entry to ‘libevdev_set_clock_id’
libevdev-1.13.6/libevdev/libevdev.c:1874:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1875:17: call_function: calling ‘_libevdev_log_priority’ from ‘libevdev_set_clock_id’
libevdev-1.13.6/libevdev/libevdev.c:1875:17: return_function: returning to ‘libevdev_set_clock_id’ from ‘_libevdev_log_priority’
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1875:17: call_function: calling ‘_libevdev_log_msg’ from ‘libevdev_set_clock_id’
#  189|   	va_start(args, format);
#  190|   	if (dev && dev->log.device_handler)
#  191|-> 		dev->log.device_handler(dev, priority, dev->log.userdata, file, line, func, format, args);
#  192|   	else
#  193|   		log_data.global_handler(priority, log_data.userdata, file, line, func, format, args);

Error: GCC_ANALYZER_WARNING (CWE-404): [#def22]
libevdev-1.13.6/libevdev/libevdev.c:193:17: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libevdev-1.13.6/libevdev/libevdev.c:1872:1: enter_function: entry to ‘libevdev_set_clock_id’
libevdev-1.13.6/libevdev/libevdev.c:1874:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1875:17: call_function: calling ‘_libevdev_log_priority’ from ‘libevdev_set_clock_id’
libevdev-1.13.6/libevdev/libevdev.c:1875:17: return_function: returning to ‘libevdev_set_clock_id’ from ‘_libevdev_log_priority’
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_true: following ‘true’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1875:17: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1875:17: call_function: calling ‘_libevdev_log_msg’ from ‘libevdev_set_clock_id’
#  191|   		dev->log.device_handler(dev, priority, dev->log.userdata, file, line, func, format, args);
#  192|   	else
#  193|-> 		log_data.global_handler(priority, log_data.userdata, file, line, func, format, args);
#  194|   	va_end(args);
#  195|   }

Error: GCC_ANALYZER_WARNING (CWE-476): [#def23]
libevdev-1.13.6/libevdev/libevdev.c:361:26: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
libevdev-1.13.6/libevdev/libevdev.c:1629:1: enter_function: entry to ‘libevdev_disable_event_code’
libevdev-1.13.6/libevdev/libevdev.c:1634:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1637:15: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1637:15: call_function: calling ‘type_to_mask’ from ‘libevdev_disable_event_code’
libevdev-1.13.6/libevdev/libevdev.c:1637:15: return_function: returning to ‘libevdev_disable_event_code’ from ‘type_to_mask’
libevdev-1.13.6/libevdev/libevdev.c:1639:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/libevdev/libevdev.c:1642:9: branch_false: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1644:12: branch_true: following ‘true’ branch (when ‘type == 3’)...
libevdev-1.13.6/libevdev/libevdev.c:1645:20: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1645:20: branch_true: following ‘true’ branch (when ‘code == 47’)...
libevdev-1.13.6/libevdev/libevdev.c:1646:29: branch_true: ...to here
libevdev-1.13.6/libevdev/libevdev.c:1646:29: call_function: calling ‘init_slots’ from ‘libevdev_disable_event_code’
#  359|   
#  360|   	free_slots(dev);
#  361|-> 	dev->num_slots = abs_info->maximum + 1;
#  362|   	dev->mt_slot_vals = calloc(dev->num_slots * ABS_MT_CNT, sizeof(int));
#  363|   	if (!dev->mt_slot_vals) {

Error: GCC_ANALYZER_WARNING (CWE-775): [#def24]
libevdev-1.13.6/tools/libevdev-events.c:139:14: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘open(file, 0)’
libevdev-1.13.6/tools/libevdev-events.c:129:12: branch_false: following ‘false’ branch (when ‘argc > 1’)...
libevdev-1.13.6/tools/libevdev-events.c:132:9: branch_false: ...to here
libevdev-1.13.6/tools/libevdev-events.c:133:14: acquire_resource: opened here
libevdev-1.13.6/tools/libevdev-events.c:134:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/libevdev-events.c:139:14: branch_false: ...to here
libevdev-1.13.6/tools/libevdev-events.c:139:14: danger: ‘open(file, 0)’ leaks here; was opened at [(3)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/2)
#  137|   	}
#  138|   
#  139|-> 	rc = libevdev_new_from_fd(fd, &dev);
#  140|   	if (rc < 0) {
#  141|   		fprintf(stderr, "Failed to init libevdev (%s)\n", strerror(-rc));

Error: GCC_ANALYZER_WARNING (CWE-401): [#def25]
libevdev-1.13.6/tools/mouse-dpi-tool.c:150:30: warning[-Wanalyzer-malloc-leak]: leak of ‘measurements.frequencies’
libevdev-1.13.6/tools/mouse-dpi-tool.c:245:1: enter_function: entry to ‘main’
libevdev-1.13.6/tools/mouse-dpi-tool.c:252:12: branch_false: following ‘false’ branch (when ‘argc > 1’)...
libevdev-1.13.6/tools/mouse-dpi-tool.c:255:9: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:256:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:259:14: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:260:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:265:14: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:266:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:271:13: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:271:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:276:9: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:283:14: call_function: calling ‘mainloop’ from ‘main’
#  148|   
#  149|   		do {
#  150|-> 			rc = libevdev_next_event(dev, LIBEVDEV_READ_FLAG_NORMAL, &ev);
#  151|   			if (rc == LIBEVDEV_READ_STATUS_SYNC) {
#  152|   				fprintf(stderr, "Error: cannot keep up\n");

Error: GCC_ANALYZER_WARNING (CWE-775): [#def26]
libevdev-1.13.6/tools/mouse-dpi-tool.c:265:14: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘open(path, 2048)’
libevdev-1.13.6/tools/mouse-dpi-tool.c:252:12: branch_false: following ‘false’ branch (when ‘argc > 1’)...
libevdev-1.13.6/tools/mouse-dpi-tool.c:255:9: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:256:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:259:14: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:259:14: acquire_resource: opened here
libevdev-1.13.6/tools/mouse-dpi-tool.c:260:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/mouse-dpi-tool.c:265:14: branch_false: ...to here
libevdev-1.13.6/tools/mouse-dpi-tool.c:265:14: throw: if ‘libevdev_new_from_fd’ throws an exception...
libevdev-1.13.6/tools/mouse-dpi-tool.c:265:14: danger: ‘open(path, 2048)’ leaks here; was opened at [(5)](sarif:/runs/0/results/1/codeFlows/0/threadFlows/0/locations/4)
#  263|   	}
#  264|   
#  265|-> 	rc = libevdev_new_from_fd(fd, &dev);
#  266|   	if (rc != 0) {
#  267|   		fprintf(stderr, "Error fetching the device info: %s\n", strerror(-rc));

Error: GCC_ANALYZER_WARNING (CWE-775): [#def27]
libevdev-1.13.6/tools/touchpad-edge-detector.c:249:14: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘open(path, 2048)’
libevdev-1.13.6/tools/touchpad-edge-detector.c:224:12: branch_false: following ‘false’ branch (when ‘argc > 2’)...
libevdev-1.13.6/tools/touchpad-edge-detector.c:227:13: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:227:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:228:13: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:227:13: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:228:28: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:227:13: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:231:12: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:231:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:240:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:243:14: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:243:14: acquire_resource: opened here
libevdev-1.13.6/tools/touchpad-edge-detector.c:244:12: branch_false: following ‘false’ branch...
libevdev-1.13.6/tools/touchpad-edge-detector.c:249:14: branch_false: ...to here
libevdev-1.13.6/tools/touchpad-edge-detector.c:249:14: throw: if ‘libevdev_new_from_fd’ throws an exception...
libevdev-1.13.6/tools/touchpad-edge-detector.c:249:14: danger: ‘open(path, 2048)’ leaks here; was opened at [(13)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/12)
#  247|   	}
#  248|   
#  249|-> 	rc = libevdev_new_from_fd(fd, &dev);
#  250|   	if (rc != 0) {
#  251|   		fprintf(stderr, "Error fetching the device info: %s\n", strerror(-rc));

Scan Properties

analyzer-version-clippy1.92.0
analyzer-version-cppcheck2.19.1
analyzer-version-gcc16.0.0
analyzer-version-gcc-analyzer16.0.0
analyzer-version-shellcheck0.11.0
analyzer-version-unicontrol0.0.2
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-31.us-west-2.compute.internal
known-false-positives/usr/share/csmock/known-false-positives.js
known-false-positives-rpmknown-false-positives-0.0.0.20250521.132812.g8eff701.main-1.el9.noarch
mock-configfedora-rawhide-x86_64
project-namelibevdev-1.13.6-1.fc44
store-results-to/tmp/tmpq45xi4a8/libevdev-1.13.6-1.fc44.tar.xz
time-created2026-01-08 18:40:05
time-finished2026-01-08 18:41:23
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpq45xi4a8/libevdev-1.13.6-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpq45xi4a8/libevdev-1.13.6-1.fc44.src.rpm'
tool-versioncsmock-3.8.3.20251215.161544.g62de9a5-1.el9