libei-1.5.0-1.fc44

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-404): [#def1]
libei-1.5.0/src/brei-shared.c:163:17: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libei-1.5.0/src/brei-shared.c:168:1: enter_function: entry to ‘brei_log_msg’
libei-1.5.0/src/brei-shared.c:174:9: acquire_resource: ‘va_start’ called here
libei-1.5.0/src/brei-shared.c:175:9: call_function: calling ‘brei_log_msg_va’ from ‘brei_log_msg’
#  161|   {
#  162|   	if (brei->log_func && brei->log_context)
#  163|-> 		brei->log_func(brei->log_context, priority, file, lineno, func, format, ap);
#  164|   }
#  165|   

Error: GCC_ANALYZER_WARNING (CWE-122): [#def2]
libei-1.5.0/src/brei-shared.c:241:37: warning[-Wanalyzer-out-of-bounds]: heap-based buffer over-read
libei-1.5.0/src/brei-shared.c:180:1: enter_function: entry to ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:184:12: branch_false: following ‘false’ branch (when ‘nargs <= 256’)...
libei-1.5.0/src/brei-shared.c:190:54: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:190:47: call_function: calling ‘xalloc’ from ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:190:47: return_function: returning to ‘brei_demarshal’ from ‘xalloc’
libei-1.5.0/src/brei-shared.c:193:48: call_function: calling ‘xalloc’ from ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:193:48: return_function: returning to ‘brei_demarshal’ from ‘xalloc’
libei-1.5.0/src/brei-shared.c:202:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/brei-shared.c:203:17: branch_true: ...to here
libei-1.5.0/src/brei-shared.c:230:28: branch_false: following ‘false’ branch (when ‘remaining >= len32’)...
libei-1.5.0/src/brei-shared.c:236:28: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:236:28: branch_false: following ‘false’ branch (when ‘slen != 0’)...
libei-1.5.0/src/brei-shared.c:239:60: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:239:60: call_function: calling ‘xalloc’ from ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:239:60: return_function: returning to ‘brei_demarshal’ from ‘xalloc’
libei-1.5.0/src/brei-shared.c:241:37: danger: read of 1 byte at offset ‘(sizetype)(*p + 4294967295)’ exceeds the buffer
#  239|   				_cleanup_free_ char *str = xalloc(slen);
#  240|   				memcpy(str, p + 1, slen);
#  241|-> 				if (str[slen - 1] != '\0') {
#  242|   					return brei_result_new(BREI_CONNECTION_DISCONNECT_REASON_PROTOCOL,
#  243|   							       "Message string not zero-terminated");

Error: GCC_ANALYZER_WARNING (CWE-401): [#def3]
libei-1.5.0/src/brei-shared.c:432:26: warning[-Wanalyzer-malloc-leak]: leak of ‘args’
libei-1.5.0/src/brei-shared.c:354:1: enter_function: entry to ‘brei_dispatch’
libei-1.5.0/src/brei-shared.c:362:12: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:364:19: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:364:19: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:367:19: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:367:19: branch_false: following ‘false’ branch...
 branch_false: ...to here
libei-1.5.0/src/brei-shared.c:378:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:382:26: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:384:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:387:29: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:397:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:403:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:403:17: branch_true: following ‘true’ branch...
libei-1.5.0/src/brei-shared.c:407:46: branch_true: ...to here
libei-1.5.0/src/brei-shared.c:408:17: branch_true: following ‘true’ branch (when ‘interface’ is non-NULL)...
libei-1.5.0/src/brei-shared.c:410:31: branch_true: ...to here
libei-1.5.0/src/brei-shared.c:410:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:417:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:424:26: call_function: calling ‘brei_demarshal’ from ‘brei_dispatch’
libei-1.5.0/src/brei-shared.c:424:26: return_function: returning to ‘brei_dispatch’ from ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:425:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:428:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:432:26: danger: ‘args’ leaks here; was allocated at [(28)](sarif:/runs/0/results/6/codeFlows/0/threadFlows/0/locations/27)
#  430|   		/* Success! Let's pass this on to the
#  431|   		 * context to process */
#  432|-> 		result = interface->dispatcher(object->implementation, opcode, nargs, args);
#  433|   		if (result)
#  434|   			goto error;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def4]
libei-1.5.0/src/brei-shared.c:432:26: warning[-Wanalyzer-malloc-leak]: leak of ‘strings’
libei-1.5.0/src/brei-shared.c:354:1: enter_function: entry to ‘brei_dispatch’
libei-1.5.0/src/brei-shared.c:362:12: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:364:19: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:364:19: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:367:19: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:367:19: branch_false: following ‘false’ branch...
 branch_false: ...to here
libei-1.5.0/src/brei-shared.c:378:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:382:26: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:384:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:387:29: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:397:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:403:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:403:17: branch_true: following ‘true’ branch...
libei-1.5.0/src/brei-shared.c:407:46: branch_true: ...to here
libei-1.5.0/src/brei-shared.c:408:17: branch_true: following ‘true’ branch (when ‘interface’ is non-NULL)...
libei-1.5.0/src/brei-shared.c:410:31: branch_true: ...to here
libei-1.5.0/src/brei-shared.c:410:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:417:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:424:26: call_function: calling ‘brei_demarshal’ from ‘brei_dispatch’
libei-1.5.0/src/brei-shared.c:424:26: return_function: returning to ‘brei_dispatch’ from ‘brei_demarshal’
libei-1.5.0/src/brei-shared.c:425:20: branch_false: following ‘false’ branch...
libei-1.5.0/src/brei-shared.c:428:17: branch_false: ...to here
libei-1.5.0/src/brei-shared.c:432:26: danger: ‘strings’ leaks here; was allocated at [(35)](sarif:/runs/0/results/5/codeFlows/0/threadFlows/0/locations/34)
#  430|   		/* Success! Let's pass this on to the
#  431|   		 * context to process */
#  432|-> 		result = interface->dispatcher(object->implementation, opcode, nargs, args);
#  433|   		if (result)
#  434|   			goto error;

Error: GCC_ANALYZER_WARNING (CWE-457): [#def5]
libei-1.5.0/src/libei-connection.h:91:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘ei_connection_sync_callback_new(*setup.object.parent, & on_connected, 0, 0)’
libei-1.5.0/src/libei-handshake.c:166:1: enter_function: entry to ‘handle_msg_connection’
libei-1.5.0/src/libei-handshake.c:168:25: call_function: inlined call to ‘ei_handshake_get_context’ from ‘handle_msg_connection’
libei-1.5.0/src/libei-handshake.c:169:9: branch_true: following ‘true’ branch...
libei-1.5.0/src/libei-handshake.c:171:28: call_function: inlined call to ‘_steal’ from ‘handle_msg_connection’
libei-1.5.0/src/libei-handshake.c:171:9: call_function: inlined call to ‘ei_handshake_unref’ from ‘handle_msg_connection’
libei-1.5.0/src/libei-handshake.c:171:9: call_function: inlined call to ‘ei_handshake_unref’ from ‘handle_msg_connection’
libei-1.5.0/src/libei-handshake.c:173:9: branch_false: following ‘false’ branch...
libei-1.5.0/src/libei-handshake.c:175:26: branch_false: ...to here
libei-1.5.0/src/libei-handshake.c:179:47: call_function: inlined call to ‘ei_connection_sync_callback_unrefp’ from ‘handle_msg_connection’
#   89|   OBJECT_DECLARE_GETTER(ei_connection_sync_callback, context, struct ei*);
#   90|   OBJECT_DECLARE_GETTER(ei_connection_sync_callback, user_data, void*);
#   91|-> DEFINE_UNREF_CLEANUP_FUNC(ei_connection_sync_callback);
#   92|   
#   93|   void

Error: GCC_ANALYZER_WARNING (CWE-457): [#def6]
libei-1.5.0/src/libei.c:103:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘brei_marshal_message(*ei.brei, *object.id,  opcode,  signature,  nargs, & args)’
libei-1.5.0/src/libei.c:926:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘ei_send_message’
#  101|   OBJECT_IMPLEMENT_GETTER(ei, serial, uint32_t);
#  102|   
#  103|-> DEFINE_UNREF_CLEANUP_FUNC(brei_result);
#  104|   DEFINE_UNREF_CLEANUP_FUNC(ei_pingpong);
#  105|   

Error: GCC_ANALYZER_WARNING (CWE-404): [#def7]
libei-1.5.0/src/libei.c:103:1: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libei-1.5.0/src/libei.c:913:1: enter_function: entry to ‘ei_send_message’
libei-1.5.0/src/libei.c:925:9: acquire_resource: ‘va_start’ called here
libei-1.5.0/src/libei.c:926:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘ei_send_message’
 branch_false: ...to here
libei-1.5.0/src/libei.c:926:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘ei_send_message’
#  101|   OBJECT_IMPLEMENT_GETTER(ei, serial, uint32_t);
#  102|   
#  103|-> DEFINE_UNREF_CLEANUP_FUNC(brei_result);
#  104|   DEFINE_UNREF_CLEANUP_FUNC(ei_pingpong);
#  105|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def8]
libei-1.5.0/src/libei.c:882:9: warning[-Wanalyzer-malloc-leak]: leak of ‘xalloc(24)’
libei-1.5.0/src/libei.c:874:1: enter_function: entry to ‘ei_queue_unsent’
libei-1.5.0/src/libei.c:880:36: call_function: calling ‘xalloc’ from ‘ei_queue_unsent’
libei-1.5.0/src/libei.c:880:36: return_function: returning to ‘ei_queue_unsent’ from ‘xalloc’
libei-1.5.0/src/libei.c:882:9: danger: ‘xalloc(24)’ leaks here; was allocated at [(6)](sarif:/runs/0/results/3/codeFlows/0/threadFlows/0/locations/5)
#  880|   	struct ei_unsent *unsent = xalloc(sizeof *unsent);
#  881|   	unsent->buf = buf;
#  882|-> 	list_append(&ei->unsent_queue, &unsent->node);
#  883|   }
#  884|   

Error: GCC_ANALYZER_WARNING (CWE-457): [#def9]
libei-1.5.0/src/libeis-client.c:48:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘brei_marshal_message(*client.brei, *object.id,  opcode,  signature,  nargs, & args)’
libei-1.5.0/src/libeis-client.c:224:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘eis_client_send_message’
#   46|   
#   47|   DEFINE_TRISTATE(started, finished, connected);
#   48|-> DEFINE_UNREF_CLEANUP_FUNC(brei_result);
#   49|   
#   50|   struct eis_unsent {

Error: GCC_ANALYZER_WARNING (CWE-404): [#def10]
libei-1.5.0/src/libeis-client.c:48:1: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libei-1.5.0/src/libeis-client.c:209:1: enter_function: entry to ‘eis_client_send_message’
libei-1.5.0/src/libeis-client.c:223:9: acquire_resource: ‘va_start’ called here
libei-1.5.0/src/libeis-client.c:224:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘eis_client_send_message’
 branch_false: ...to here
libei-1.5.0/src/libeis-client.c:224:31: call_function: inlined call to ‘brei_result_unrefp’ from ‘eis_client_send_message’
#   46|   
#   47|   DEFINE_TRISTATE(started, finished, connected);
#   48|-> DEFINE_UNREF_CLEANUP_FUNC(brei_result);
#   49|   
#   50|   struct eis_unsent {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def11]
libei-1.5.0/src/libeis-client.c:178:9: warning[-Wanalyzer-malloc-leak]: leak of ‘xalloc(24)’
libei-1.5.0/src/libeis-client.c:168:1: enter_function: entry to ‘eis_client_queue_unsent’
libei-1.5.0/src/libeis-client.c:176:37: call_function: calling ‘xalloc’ from ‘eis_client_queue_unsent’
libei-1.5.0/src/libeis-client.c:176:37: return_function: returning to ‘eis_client_queue_unsent’ from ‘xalloc’
libei-1.5.0/src/libeis-client.c:178:9: danger: ‘xalloc(24)’ leaks here; was allocated at [(6)](sarif:/runs/0/results/3/codeFlows/0/threadFlows/0/locations/5)
#  176|   	struct eis_unsent *unsent = xalloc(sizeof *unsent);
#  177|   	unsent->buf = buf;
#  178|-> 	list_append(&client->unsent_queue, &unsent->node);
#  179|   }
#  180|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def12]
libei-1.5.0/src/libeis-device.c:83:12: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘xdup(fd)’
libei-1.5.0/src/libeis-device.c:69:1: enter_function: entry to ‘eis_device_new_keymap’
libei-1.5.0/src/libeis-device.c:72:9: branch_true: following ‘true’ branch (when ‘type == 1’)...
libei-1.5.0/src/libeis-device.c:79:13: branch_true: ...to here
libei-1.5.0/src/libeis-device.c:79:12: branch_false: following ‘false’ branch...
libei-1.5.0/src/libeis-device.c:82:21: branch_false: ...to here
libei-1.5.0/src/libeis-device.c:82:21: call_function: calling ‘xdup’ from ‘eis_device_new_keymap’
libei-1.5.0/src/libeis-device.c:82:21: return_function: returning to ‘eis_device_new_keymap’ from ‘xdup’
libei-1.5.0/src/libeis-device.c:83:12: danger: ‘xdup(fd)’ leaks here; was opened at [(8)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/7)
#   81|   
#   82|   	int newfd = xdup(fd);
#   83|-> 	if (newfd < 0)
#   84|   		return NULL;
#   85|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def13]
libei-1.5.0/src/liboeffis.c:357:29: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘eisfd’
libei-1.5.0/src/liboeffis.c:332:1: enter_function: entry to ‘connect_to_eis_returned’
libei-1.5.0/src/liboeffis.c:344:12: branch_false: following ‘false’ branch...
libei-1.5.0/src/liboeffis.c:350:14: branch_false: ...to here
libei-1.5.0/src/liboeffis.c:350:14: call_function: calling ‘xdup’ from ‘connect_to_eis_returned’
libei-1.5.0/src/liboeffis.c:350:14: return_function: returning to ‘connect_to_eis_returned’ from ‘xdup’
libei-1.5.0/src/liboeffis.c:350:14: call_function: inlined call to ‘xerrno’ from ‘connect_to_eis_returned’
libei-1.5.0/src/liboeffis.c:356:17: branch_false: ...to here
libei-1.5.0/src/liboeffis.c:357:29: danger: ‘eisfd’ leaks here; was opened at [(6)](sarif:/runs/0/results/1/codeFlows/0/threadFlows/0/locations/5)
#  355|   	} else {
#  356|   		eisfd = rc;
#  357|-> 		int flags = fcntl(eisfd, F_GETFL, 0);
#  358|   		fcntl(eisfd, F_SETFL, flags | O_NONBLOCK);
#  359|   	}

Error: GCC_ANALYZER_WARNING (CWE-775): [#def14]
libei-1.5.0/src/util-io.h:119:16: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘xdup(eisfd)’
libei-1.5.0/src/liboeffis.c:332:1: enter_function: entry to ‘connect_to_eis_returned’
libei-1.5.0/src/liboeffis.c:344:12: branch_false: following ‘false’ branch...
libei-1.5.0/src/liboeffis.c:350:14: branch_false: ...to here
libei-1.5.0/src/liboeffis.c:350:14: call_function: calling ‘xdup’ from ‘connect_to_eis_returned’
libei-1.5.0/src/liboeffis.c:350:14: return_function: returning to ‘connect_to_eis_returned’ from ‘xdup’
libei-1.5.0/src/liboeffis.c:350:14: call_function: inlined call to ‘xerrno’ from ‘connect_to_eis_returned’
#  117|   static inline int
#  118|   xerrno(int value) {
#  119|-> 	return value < 0 ? -errno : value;
#  120|   }
#  121|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def15]
libei-1.5.0/src/util-io.h:229:18: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘rc_’
libei-1.5.0/src/util-io.h:215:1: enter_function: entry to ‘xconnect’
libei-1.5.0/src/util-io.h:221:12: branch_true: following ‘true’ branch...
 branch_true: ...to here
libei-1.5.0/src/util-io.h:225:29: acquire_resource: socket created here
libei-1.5.0/src/util-io.h:225:29: branch_false: following ‘false’ branch (when ‘rc_ != -1’)...
libei-1.5.0/src/util-io.h:225:22: call_function: inlined call to ‘xerrno’ from ‘xconnect’
libei-1.5.0/src/util-io.h:229:18: branch_false: ...to here
libei-1.5.0/src/util-io.h:229:18: danger: ‘rc_’ leaks here
#  227|   		return sockfd;
#  228|   
#  229|-> 	int rc = xerrno(connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)));
#  230|   	if (rc < 0)
#  231|   		return rc;

Error: GCC_ANALYZER_WARNING (CWE-404): [#def16]
libei-1.5.0/src/util-logger.c:75:17: warning[-Wanalyzer-va-list-leak]: missing call to ‘va_end’
libei-1.5.0/src/util-logger.c:81:1: enter_function: entry to ‘log_msg’
libei-1.5.0/src/util-logger.c:88:9: acquire_resource: ‘va_start’ called here
libei-1.5.0/src/util-logger.c:89:9: call_function: calling ‘log_msg_va’ from ‘log_msg’
#   73|   {
#   74|          if (logger->handler && logger->priority <= priority)
#   75|-> 		logger->handler(logger, logger->prefix,
#   76|   				priority, file, lineno, func,
#   77|   				format, args);

Error: CPPCHECK_WARNING (CWE-457): [#def17]
libei-1.5.0/src/util-memfile.c:74: warning[uninitvar]: Uninitialized variable: rc
#   72|   		rc = SYSCALL(posix_fallocate(fd, 0, sz));
#   73|   	}
#   74|-> 	if (rc < 0)
#   75|   		return NULL;
#   76|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def18]
libei-1.5.0/src/util-strings.h:149:9: warning[-Wanalyzer-malloc-leak]: leak of ‘xstrdup("org.freedesktop.portal.Desktop")’
libei-1.5.0/tools/ei-demo-client.c:197:5: enter_function: entry to ‘main’
libei-1.5.0/tools/ei-demo-client.c:208:40: call_function: calling ‘xstrdup’ from ‘main’
libei-1.5.0/tools/ei-demo-client.c:208:40: return_function: returning to ‘main’ from ‘xstrdup’
libei-1.5.0/tools/ei-demo-client.c:232:20: branch_false: following ‘false’ branch (when ‘c != -1’)...
libei-1.5.0/tools/ei-demo-client.c:235:17: branch_false: ...to here
libei-1.5.0/tools/ei-demo-client.c:247:30: call_function: inlined call to ‘xatoi’ from ‘main’
libei-1.5.0/tools/ei-demo-client.c:247:30: call_function: inlined call to ‘xatoi’ from ‘main’
libei-1.5.0/tools/ei-demo-client.c:247:28: branch_true: following ‘true’ branch...
libei-1.5.0/tools/ei-demo-client.c:210:19: branch_true: ...to here
libei-1.5.0/src/util-strings.h:149:9: danger: ‘xstrdup("org.freedesktop.portal.Desktop")’ leaks here; was allocated at [(6)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/5)
#  147|   	long v;
#  148|   
#  149|-> 	assert(base == 10 || base == 16 || base == 8);
#  150|   
#  151|   	errno = 0;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def19]
libei-1.5.0/src/util-strings.h:280:9: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libei-1.5.0/src/util-strings.c:78:1: enter_function: entry to ‘strv_from_string’
libei-1.5.0/src/util-strings.c:85:9: branch_true: following ‘true’ branch (when ‘in’ is non-NULL)...
libei-1.5.0/src/util-strings.c:87:9: branch_true: ...to here
libei-1.5.0/src/util-strings.c:88:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/util-strings.c:89:16: branch_true: ...to here
libei-1.5.0/src/util-strings.c:88:16: branch_false: following ‘false’ branch...
libei-1.5.0/src/util-strings.c:91:12: branch_false: ...to here
libei-1.5.0/src/util-strings.c:91:12: branch_false: following ‘false’ branch (when ‘nelems != 0’)...
libei-1.5.0/src/util-strings.c:94:9: branch_false: ...to here
libei-1.5.0/src/util-strings.c:95:16: call_function: calling ‘xalloc’ from ‘strv_from_string’
libei-1.5.0/src/util-strings.c:95:16: return_function: returning to ‘strv_from_string’ from ‘xalloc’
libei-1.5.0/src/util-strings.c:100:24: call_function: calling ‘next_word’ from ‘strv_from_string’
libei-1.5.0/src/util-strings.c:100:24: return_function: returning to ‘strv_from_string’ from ‘next_word’
libei-1.5.0/src/util-strings.c:100:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/util-strings.c:101:30: branch_true: ...to here
libei-1.5.0/src/util-strings.c:102:20: branch_false: following ‘false’ branch (when ‘copy’ is non-NULL)...
libei-1.5.0/src/util-strings.c:107:22: branch_false: ...to here
libei-1.5.0/src/util-strings.c:100:24: call_function: calling ‘next_word’ from ‘strv_from_string’
libei-1.5.0/src/util-strings.c:100:24: return_function: returning to ‘strv_from_string’ from ‘next_word’
libei-1.5.0/src/util-strings.c:100:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/util-strings.c:101:30: branch_true: ...to here
libei-1.5.0/src/util-strings.c:102:20: branch_false: following ‘false’ branch (when ‘copy’ is non-NULL)...
libei-1.5.0/src/util-strings.c:107:22: branch_false: ...to here
libei-1.5.0/src/util-strings.c:100:24: call_function: calling ‘next_word’ from ‘strv_from_string’
libei-1.5.0/src/util-strings.c:100:24: return_function: returning to ‘strv_from_string’ from ‘next_word’
libei-1.5.0/src/util-strings.c:100:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/util-strings.c:101:30: branch_true: ...to here
libei-1.5.0/src/util-strings.c:101:30: acquire_memory: allocated here
libei-1.5.0/src/util-strings.c:102:20: branch_false: following ‘false’ branch (when ‘copy’ is non-NULL)...
libei-1.5.0/src/util-strings.c:107:22: branch_false: ...to here
libei-1.5.0/src/util-strings.c:100:24: call_function: calling ‘next_word’ from ‘strv_from_string’
libei-1.5.0/src/util-strings.c:100:24: return_function: returning to ‘strv_from_string’ from ‘next_word’
libei-1.5.0/src/util-strings.c:100:16: branch_true: following ‘true’ branch...
libei-1.5.0/src/util-strings.c:101:30: branch_true: ...to here
libei-1.5.0/src/util-strings.c:102:20: branch_true: following ‘true’ branch (when ‘copy’ is NULL)...
libei-1.5.0/src/util-strings.c:103:25: branch_true: ...to here
libei-1.5.0/src/util-strings.c:103:25: call_function: calling ‘strv_free’ from ‘strv_from_string’
#  278|   	}
#  279|   
#  280|-> 	free (strv);
#  281|   }
#  282|   

Error: GCC_ANALYZER_WARNING (CWE-457): [#def20]
libei-1.5.0/tools/eis-demo-server.c:156:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘eis_device_new_region(eis_seat_new_device(seat))’
libei-1.5.0/tools/eis-demo-server.c:349:1: enter_function: entry to ‘eis_demo_server_printf_handle_event’
libei-1.5.0/tools/eis-demo-server.c:395:54: call_function: inlined call to ‘eis_demo_client_find’ from ‘eis_demo_server_printf_handle_event’
libei-1.5.0/tools/eis-demo-server.c:396:17: branch_true: following ‘true’ branch...
libei-1.5.0/tools/eis-demo-server.c:398:41: branch_true: ...to here
libei-1.5.0/tools/eis-demo-server.c:400:20: branch_true: following ‘true’ branch...
libei-1.5.0/tools/eis-demo-server.c:401:30: branch_true: ...to here
libei-1.5.0/tools/eis-demo-server.c:401:28: branch_true: following ‘true’ branch...
libei-1.5.0/tools/eis-demo-server.c:402:51: branch_true: ...to here
libei-1.5.0/tools/eis-demo-server.c:402:51: call_function: calling ‘add_device’ from ‘eis_demo_server_printf_handle_event’
#  154|   DEFINE_UNREF_CLEANUP_FUNC(eis_keymap);
#  155|   DEFINE_UNREF_CLEANUP_FUNC(eis_seat);
#  156|-> DEFINE_UNREF_CLEANUP_FUNC(eis_region);
#  157|   
#  158|   static void unlink_free(char **path) {

Scan Properties

analyzer-version-clippy1.90.0
analyzer-version-cppcheck2.18.3
analyzer-version-gcc15.2.1
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-184.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-gcc-latest-x86_64
project-namelibei-1.5.0-1.fc44
store-results-to/tmp/tmppyngi32_/libei-1.5.0-1.fc44.tar.xz
time-created2025-10-28 18:59:05
time-finished2025-10-28 19:00:23
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-gcc-latest-x86_64' '-t' 'gcc,cppcheck,shellcheck,clippy,unicontrol' '-o' '/tmp/tmppyngi32_/libei-1.5.0-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--install=gcc-latest' '--gcc-analyzer-bin=/opt/gcc-latest/bin/gcc' '/tmp/tmppyngi32_/libei-1.5.0-1.fc44.src.rpm'
tool-versioncsmock-3.8.3.20251027.143044.ge6b947b-1.el9