Fixed findings

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-457): [#def1]
NetworkManager-1.54.0/src/libnm-glib-aux/nm-macros-internal.h:79:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘sysctl_value’
NetworkManager-1.54.0/src/core/nm-policy.c:2123:5: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/core/nm-policy.c:2127:17: branch_true: ...to here
NetworkManager-1.54.0/src/core/nm-policy.c:2137:28: throw: if ‘nm_device_sysctl_ip_conf_get’ throws an exception...
NetworkManager-1.54.0/src/core/nm-policy.c:2135:27: call_function: inlined call to ‘_nm_auto_g_free’ from ‘refresh_forwarding’
#   77|   /*****************************************************************************/
#   78|   
#   79|-> NM_AUTO_DEFINE_FCN_VOID0(void *, _nm_auto_g_free, g_free);
#   80|   #define nm_auto_g_free nm_auto(_nm_auto_g_free)
#   81|   

Error: GCC_ANALYZER_WARNING (CWE-457): [#def2]
NetworkManager-1.54.0/src/libnm-glib-aux/nm-macros-internal.h:82:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘cur_storage’
NetworkManager-1.54.0/src/core/settings/nm-settings.c:2056:1: enter_function: entry to ‘nm_settings_update_connection’
NetworkManager-1.54.0/src/core/settings/nm-settings.c:2083:5: call_function: calling ‘nm_settings_get_type’ from ‘nm_settings_update_connection’
NetworkManager-1.54.0/src/core/settings/nm-settings.c:2072:40: call_function: inlined call to ‘_nm_auto_unref_object’ from ‘nm_settings_update_connection’
NetworkManager-1.54.0/src/core/settings/nm-settings.c:2071:40: call_function: inlined call to ‘_nm_auto_unref_object’ from ‘nm_settings_update_connection’
#   80|   #define nm_auto_g_free nm_auto(_nm_auto_g_free)
#   81|   
#   82|-> NM_AUTO_DEFINE_FCN_VOID0(GObject *, _nm_auto_unref_object, g_object_unref);
#   83|   #define nm_auto_unref_object nm_auto(_nm_auto_unref_object)
#   84|   

Error: GCC_ANALYZER_WARNING (CWE-457): [#def3]
NetworkManager-1.54.0/src/libnm-glib-aux/nm-shared-utils.h:1458:1: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘client_context’
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1399:1: enter_function: entry to ‘test_client_wait_shutdown’
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1423:8: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1427:31: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1428:17: branch_true: following ‘true’ branch (when ‘i != 5’)...
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1429:35: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1432:5: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1432:5: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1434:21: branch_true: following ‘true’ branch (when ‘i_run != 50’)...
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1435:67: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1444:31: call_function: calling ‘nmtst_get_rand_uint32’ from ‘test_client_wait_shutdown’
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1440:48: call_function: inlined call to ‘_nm_auto_unref_object’ from ‘test_client_wait_shutdown’
NetworkManager-1.54.0/src/libnm-client-impl/tests/test-nm-client.c:1437:48: call_function: inlined call to ‘_nm_auto_pop_gmaincontext’ from ‘test_client_wait_shutdown’
# 1456|   #define nm_auto_destroy_and_unref_gsource nm_auto(_nm_auto_destroy_and_unref_gsource)
# 1457|   
# 1458|-> NM_AUTO_DEFINE_FCN0(GMainContext *, _nm_auto_pop_gmaincontext, g_main_context_pop_thread_default);
# 1459|   #define nm_auto_pop_gmaincontext nm_auto(_nm_auto_pop_gmaincontext)
# 1460|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def4]
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/alloc-util.h:112:16: warning[-Wanalyzer-malloc-leak]: leak of ‘malloc_multiply((long unsigned int)(<unknown> + 1), 8)’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1792:8: enter_function: entry to ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1797:12: branch_false: following ‘false’ branch (when ‘h’ is non-NULL)...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: call_function: inlined call to ‘n_entries’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: call_function: calling ‘malloc_multiply’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: return_function: returning to ‘_hashmap_get_strv’ from ‘malloc_multiply’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1801:12: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: call_function: calling ‘hashmap_iterate_entry’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/alloc-util.h:116:13: call_function: inlined call to ‘size_multiply_overflow’ from ‘malloc_multiply’
#  110|   
#  111|   static inline bool size_multiply_overflow(size_t size, size_t need) {
#  112|->         return _unlikely_(need != 0 && size > (SIZE_MAX / need));
#  113|   }
#  114|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def5]
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1011:35: warning[-Wanalyzer-malloc-leak]: leak of ‘strdup(d + strspn(d, & <U5d10>))’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:958:5: enter_function: entry to ‘parse_cifs_service’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:972:12: branch_false: following ‘false’ branch (when ‘s’ is non-NULL)...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:975:13: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:984:12: branch_false: following ‘false’ branch (when ‘e’ is non-NULL)...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:987:24: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:988:12: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:991:14: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:991:12: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:994:9: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:999:12: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1002:14: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1002:12: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1005:14: call_function: inlined call to ‘isempty’ from ‘parse_cifs_service’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1006:21: acquire_memory: allocated here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1007:20: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1007:20: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1011:35: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1012:28: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1011:35: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1012:28: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1011:35: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1012:28: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1015:20: branch_true: following ‘true’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1018:17: call_function: inlined call to ‘path_simplify’ from ‘parse_cifs_service’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/fs-util.c:1011:35: danger: ‘strdup(d + strspn(d, & <U5d10>))’ leaks here; was allocated at [(18)](sarif:/runs/0/results/10/codeFlows/0/threadFlows/0/locations/17)
# 1009|   
# 1010|                   /* Make sure to convert Windows-style "\" → Unix-style / */
# 1011|->                 for (char *i = x; *i; i++)
# 1012|                           if (*i == delimiter)
# 1013|                                   *i = '/';

Error: GCC_ANALYZER_WARNING (CWE-401): [#def6]
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:520:17: warning[-Wanalyzer-malloc-leak]: leak of ‘malloc_multiply((long unsigned int)(<unknown> + 1), 8) + (long unsigned int)n * 8’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1792:8: enter_function: entry to ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1797:12: branch_false: following ‘false’ branch (when ‘h’ is non-NULL)...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: call_function: inlined call to ‘n_entries’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: call_function: calling ‘malloc_multiply’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1800:14: return_function: returning to ‘_hashmap_get_strv’ from ‘malloc_multiply’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1801:12: branch_false: following ‘false’ branch...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: branch_false: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: call_function: calling ‘hashmap_iterate_entry’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: return_function: returning to ‘_hashmap_get_strv’ from ‘hashmap_iterate_entry’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1805:9: branch_true: following ‘true’ branch (when ‘idx != 4294967295’)...
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1806:27: branch_true: ...to here
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1806:27: call_function: calling ‘bucket_at’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1806:27: return_function: returning to ‘_hashmap_get_strv’ from ‘bucket_at’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:1806:27: call_function: calling ‘entry_value’ from ‘_hashmap_get_strv’
NetworkManager-1.54.0/src/libnm-systemd-shared/src/basic/hashmap.c:520:17: danger: ‘malloc_multiply((long unsigned int)(<unknown> + 1), 8) + (long unsigned int)n * 8’ leaks here; was allocated at [(7)](sarif:/runs/0/results/12/codeFlows/0/threadFlows/0/locations/6)
#  518|   
#  519|   static void* entry_value(HashmapBase *h, struct hashmap_base_entry *e) {
#  520|->         switch (h->type) {
#  521|   
#  522|           case HASHMAP_TYPE_PLAIN:

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
diffbase-analyzer-version-clippy1.92.0
diffbase-analyzer-version-cppcheck2.19.1
diffbase-analyzer-version-gcc16.0.0
diffbase-analyzer-version-gcc-analyzer16.0.0
diffbase-analyzer-version-shellcheck0.11.0
diffbase-analyzer-version-unicontrol0.0.2
diffbase-enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
diffbase-exit-code0
diffbase-hostip-172-16-1-157.us-west-2.compute.internal
diffbase-known-false-positives/usr/share/csmock/known-false-positives.js
diffbase-known-false-positives-rpmknown-false-positives-0.0.0.20250521.132812.g8eff701.main-1.el9.noarch
diffbase-mock-configfedora-rawhide-x86_64
diffbase-project-nameNetworkManager-1.55.91-1.fc44
diffbase-store-results-to/tmp/tmpx03zz9rf/NetworkManager-1.55.91-1.fc44.tar.xz
diffbase-time-created2026-01-08 15:39:37
diffbase-time-finished2026-01-08 16:00:12
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpx03zz9rf/NetworkManager-1.55.91-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpx03zz9rf/NetworkManager-1.55.91-1.fc44.src.rpm'
diffbase-tool-versioncsmock-3.8.3.20251215.161544.g62de9a5-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-157.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-nameNetworkManager-1.54.0-2.fc43
store-results-to/tmp/tmpm79was9s/NetworkManager-1.54.0-2.fc43.tar.xz
time-created2026-01-08 15:18:24
time-finished2026-01-08 15:38:34
titleFixed findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpm79was9s/NetworkManager-1.54.0-2.fc43.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpm79was9s/NetworkManager-1.54.0-2.fc43.src.rpm'
tool-versioncsmock-3.8.3.20251215.161544.g62de9a5-1.el9