Newly introduced findings

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-401): [#def1]
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:195:5: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:151:1: enter_function: entry to ‘xkb_compose_table_new_from_locale’
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:160:8: branch_false: following ‘false’ branch (when ‘flags == 0’)...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:166:13: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:166:13: call_function: calling ‘xkb_compose_table_new’ from ‘xkb_compose_table_new_from_locale’
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:166:13: return_function: returning to ‘xkb_compose_table_new_from_locale’ from ‘xkb_compose_table_new’
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:168:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:171:12: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:173:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:175:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:179:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:181:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:185:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:187:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:191:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:193:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:195:5: throw: if ‘xkb_log’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/src/compose/table.c:195:5: danger: ‘<unknown>’ leaks here; was allocated at [(10)](sarif:/runs/0/results/26/codeFlows/0/threadFlows/0/locations/9)
#  193|       free(path);
#  194|   
#  195|->     log_err(ctx, XKB_ERROR_INVALID_COMPOSE_LOCALE,
#  196|               "couldn't find a Compose file for locale \"%s\" (mapped to \"%s\")\n",
#  197|               locale, table->locale);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
libxkbcommon-xkbcommon-1.13.1/src/context.c:170:21: warning[-Wanalyzer-malloc-leak]: leak of ‘opendir(path)’
libxkbcommon-xkbcommon-1.13.1/src/context.c:366:1: enter_function: entry to ‘xkb_context_include_path_reset_defaults’
libxkbcommon-xkbcommon-1.13.1/src/context.c:369:12: call_function: calling ‘xkb_context_include_path_append_default’ from ‘xkb_context_include_path_reset_defaults’
#  168|       char path_buf[PATH_MAX] = "";
#  169|       versioned_path_length++; /* Additional final ‘/’ */
#  170|->     while ((entry = readdir(dir)) != NULL) {
#  171|           const char *name = entry->d_name;
#  172|   

Error: GCC_ANALYZER_WARNING (CWE-476): [#def3]
libxkbcommon-xkbcommon-1.13.1/src/context.c:198:9: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘0’
libxkbcommon-xkbcommon-1.13.1/src/context.c:366:1: enter_function: entry to ‘xkb_context_include_path_reset_defaults’
libxkbcommon-xkbcommon-1.13.1/src/context.c:369:12: call_function: calling ‘xkb_context_include_path_append_default’ from ‘xkb_context_include_path_reset_defaults’
#  196|           }
#  197|   
#  198|->         darray_append(*extensions, ext_path);
#  199|   next:
#  200|       {} /* Label at end of compound statement is a C23 extension */

Error: GCC_ANALYZER_WARNING (CWE-401): [#def4]
libxkbcommon-xkbcommon-1.13.1/src/registry.c:648:21: warning[-Wanalyzer-malloc-leak]: leak of ‘opendir(path)’
libxkbcommon-xkbcommon-1.13.1/src/registry.c:707:1: enter_function: entry to ‘rxkb_context_include_path_append_default’
libxkbcommon-xkbcommon-1.13.1/src/registry.c:757:16: call_function: calling ‘add_direct_subdirectories’ from ‘rxkb_context_include_path_append_default’
#  646|       char path_buf[PATH_MAX] = "";
#  647|       versioned_path_length++; /* Additional final ‘/’ */
#  648|->     while ((entry = readdir(dir)) != NULL) {
#  649|           const char *name = entry->d_name;
#  650|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def5]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:283:13: warning[-Wanalyzer-malloc-leak]: leak of ‘buf.buf’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:1068:1: enter_function: entry to ‘text_v1_keymap_get_as_string’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:1074:10: call_function: calling ‘write_keymap’ from ‘text_v1_keymap_get_as_string’
#  281|   
#  282|           if (pretty)
#  283|->             write_buf(buf, "\t%-20s", KeyNameText(keymap->ctx, key->name));
#  284|           else
#  285|               write_buf(buf, "\t%s", KeyNameText(keymap->ctx, key->name));

Error: GCC_ANALYZER_WARNING (CWE-401): [#def6]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:285:13: warning[-Wanalyzer-malloc-leak]: leak of ‘buf.buf’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:1068:1: enter_function: entry to ‘text_v1_keymap_get_as_string’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-dump.c:1074:10: call_function: calling ‘write_keymap’ from ‘text_v1_keymap_get_as_string’
#  283|               write_buf(buf, "\t%-20s", KeyNameText(keymap->ctx, key->name));
#  284|           else
#  285|->             write_buf(buf, "\t%s", KeyNameText(keymap->ctx, key->name));
#  286|           write_buf(buf, " = %"PRIu32";\n", key->keycode);
#  287|       }

Error: GCC_ANALYZER_WARNING (CWE-476): [#def7]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:196:5: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘*section.buffer.item + (sizetype)(*section.buffer.size + 4294967295)’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:384:1: enter_function: entry to ‘xkb_file_iterator_new_from_buffer’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:393:8: branch_false: following ‘false’ branch (when ‘iter’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:399:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:404:5: call_function: calling ‘xkb_file_section_init’ from ‘xkb_file_iterator_new_from_buffer’
#  194|       darray_init(section->includes);
#  195|       darray_init(section->buffer);
#  196|->     darray_append(section->buffer, '\0');
#  197|   }
#  198|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def8]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(path, "rb")’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:353:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:356:18: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:356:18: acquire_resource: opened here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:357:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: throw: if ‘XkbParseFile’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: danger: ‘fopen(path, "rb")’ leaks here; was opened at [(3)](sarif:/runs/0/results/1/codeFlows/0/threadFlows/0/locations/2)
#  361|       }
#  362|   
#  363|->     XkbFile *xkb_file = XkbParseFile(ctx, file, path, map);
#  364|       fclose(file);
#  365|       if (!xkb_file) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def9]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(path, "rb")’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:353:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:356:18: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:356:18: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:357:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: throw: if ‘XkbParseFile’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:363:25: danger: ‘fopen(path, "rb")’ leaks here; was allocated at [(3)](sarif:/runs/0/results/2/codeFlows/0/threadFlows/0/locations/2)
#  361|       }
#  362|   
#  363|->     XkbFile *xkb_file = XkbParseFile(ctx, file, path, map);
#  364|       fclose(file);
#  365|       if (!xkb_file) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def10]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: warning[-Wanalyzer-malloc-leak]: leak of ‘<unknown>’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:384:1: enter_function: entry to ‘xkb_file_iterator_new_from_buffer’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:393:8: branch_false: following ‘false’ branch (when ‘iter’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:399:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:404:5: call_function: calling ‘xkb_file_section_init’ from ‘xkb_file_iterator_new_from_buffer’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:404:5: return_function: returning to ‘xkb_file_iterator_new_from_buffer’ from ‘xkb_file_section_init’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: throw: if ‘XkbParseStringInit’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: danger: ‘<unknown>’ leaks here; was allocated at [(6)](sarif:/runs/0/results/3/codeFlows/0/threadFlows/0/locations/5)
#  404|       xkb_file_section_init(&iter->section);
#  405|   
#  406|->     if (!XkbParseStringInit(ctx, &iter->scanner, string, length, path, NULL)) {
#  407|           xkb_file_iterator_free(iter);
#  408|           return NULL;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def11]
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: warning[-Wanalyzer-malloc-leak]: leak of ‘iter’
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:392:45: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:393:8: branch_false: following ‘false’ branch (when ‘iter’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:399:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: throw: if ‘XkbParseStringInit’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/src/xkbcomp/keymap-file-iterator.c:406:10: danger: ‘iter’ leaks here; was allocated at [(1)](sarif:/runs/0/results/4/codeFlows/0/threadFlows/0/locations/0)
#  404|       xkb_file_section_init(&iter->section);
#  405|   
#  406|->     if (!XkbParseStringInit(ctx, &iter->scanner, string, length, path, NULL)) {
#  407|           xkb_file_iterator_free(iter);
#  408|           return NULL;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def12]
libxkbcommon-xkbcommon-1.13.1/test/common.c:279:26: warning[-Wanalyzer-malloc-leak]: leak of ‘test_read_file(rel_path)’
libxkbcommon-xkbcommon-1.13.1/test/common.c:674:1: enter_function: entry to ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:690:8: branch_false: following ‘false’ branch (when ‘rel_path’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:709:17: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:711:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:716:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: call_function: calling ‘test_get_path’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: return_function: returning to ‘test_compile_output2’ from ‘test_get_path’
libxkbcommon-xkbcommon-1.13.1/test/common.c:719:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: following ‘false’ branch (when ‘update_output_files == 0’)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:728:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:729:32: call_function: calling ‘test_read_file’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:729:32: return_function: returning to ‘test_compile_output2’ from ‘test_read_file’
libxkbcommon-xkbcommon-1.13.1/test/common.c:730:9: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:733:14: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:735:34: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:736:17: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:736:17: call_function: calling ‘streq’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:736:17: return_function: returning to ‘test_compile_output2’ from ‘streq’
libxkbcommon-xkbcommon-1.13.1/test/common.c:736:16: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:737:17: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:738:20: branch_true: following ‘true’ branch (when ‘test_round_trip != 0’)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:741:26: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:741:26: throw: if the called function throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/common.c:279:26: danger: ‘test_read_file(rel_path)’ leaks here; was allocated at [(56)](sarif:/runs/0/results/0/codeFlows/0/threadFlows/0/locations/55)
#  277|   
#  278|       path = asprintf_safe("%s/test/data%s%s", srcdir,
#  279|->                          path_rel[0] ? "/" : "", path_rel);
#  280|       if (!path) {
#  281|           fprintf(stderr, "Failed to allocate path for %s\n", path_rel);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def13]
libxkbcommon-xkbcommon-1.13.1/test/common.c:303:24: warning[-Wanalyzer-malloc-leak]: leak of ‘test_get_path(path_rel)’
libxkbcommon-xkbcommon-1.13.1/test/common.c:674:1: enter_function: entry to ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:690:8: branch_false: following ‘false’ branch (when ‘rel_path’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:709:17: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:711:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:716:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: call_function: calling ‘test_get_path’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: return_function: returning to ‘test_compile_output2’ from ‘test_get_path’
libxkbcommon-xkbcommon-1.13.1/test/common.c:719:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: following ‘false’ branch (when ‘update_output_files == 0’)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:728:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:729:32: call_function: calling ‘test_read_file’ from ‘test_compile_output2’
#  301|       }
#  302|   
#  303|->     char* ret = malloc(info.st_size + 1);
#  304|       if (!ret) {
#  305|           fclose(file);

Error: GCC_ANALYZER_WARNING (CWE-910): [#def14]
libxkbcommon-xkbcommon-1.13.1/test/common.c:342:9: warning[-Wanalyzer-double-fclose]: double ‘fclose’ of FILE ‘fopen(test_get_path(path_rel), "rb")’
libxkbcommon-xkbcommon-1.13.1/test/common.c:674:1: enter_function: entry to ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:690:8: branch_false: following ‘false’ branch (when ‘rel_path’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:709:17: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:711:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:716:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: call_function: calling ‘test_get_path’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: return_function: returning to ‘test_compile_output2’ from ‘test_get_path’
libxkbcommon-xkbcommon-1.13.1/test/common.c:719:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: following ‘false’ branch (when ‘update_output_files == 0’)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:728:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:729:32: call_function: calling ‘test_read_file’ from ‘test_compile_output2’
#  340|   out:
#  341|       if (file)
#  342|->         fclose(file);
#  343|       free(path);
#  344|       return ret;

Error: GCC_ANALYZER_WARNING (CWE-415): [#def15]
libxkbcommon-xkbcommon-1.13.1/test/common.c:342:9: warning[-Wanalyzer-double-free]: double-‘fclose’ of ‘fopen(test_get_path(path_rel), "rb")’
libxkbcommon-xkbcommon-1.13.1/test/common.c:674:1: enter_function: entry to ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:690:8: branch_false: following ‘false’ branch (when ‘rel_path’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:704:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:709:17: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:711:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:716:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: call_function: calling ‘test_get_path’ from ‘test_compile_output2’
libxkbcommon-xkbcommon-1.13.1/test/common.c:718:24: return_function: returning to ‘test_compile_output2’ from ‘test_get_path’
libxkbcommon-xkbcommon-1.13.1/test/common.c:719:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:721:8: branch_false: following ‘false’ branch (when ‘update_output_files == 0’)...
libxkbcommon-xkbcommon-1.13.1/test/common.c:728:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/common.c:729:32: call_function: calling ‘test_read_file’ from ‘test_compile_output2’
#  340|   out:
#  341|       if (file)
#  342|->         fclose(file);
#  343|       free(path);
#  344|       return ret;

Error: GCC_ANALYZER_WARNING (CWE-775): [#def16]
libxkbcommon-xkbcommon-1.13.1/test/test.h:152:5: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(test_get_path("locale/en_US.UTF-8/Compose"), "rb")’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:18:1: enter_function: entry to ‘main’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:28:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:30:12: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:31:12: acquire_resource: opened here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:32:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: call_function: calling ‘xkb_enable_quiet_logging’ from ‘main’
#  150|   xkb_enable_quiet_logging(struct xkb_context *ctx)
#  151|   {
#  152|->     xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL);
#  153|       xkb_context_set_log_verbosity(ctx, XKB_LOG_VERBOSITY_MINIMAL);
#  154|   }

Error: GCC_ANALYZER_WARNING (CWE-401): [#def17]
libxkbcommon-xkbcommon-1.13.1/test/test.h:152:5: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(test_get_path("locale/en_US.UTF-8/Compose"), "rb")’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:18:1: enter_function: entry to ‘main’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:28:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:30:12: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:31:12: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:32:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: call_function: calling ‘xkb_enable_quiet_logging’ from ‘main’
#  150|   xkb_enable_quiet_logging(struct xkb_context *ctx)
#  151|   {
#  152|->     xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL);
#  153|       xkb_context_set_log_verbosity(ctx, XKB_LOG_VERBOSITY_MINIMAL);
#  154|   }

Error: GCC_ANALYZER_WARNING (CWE-775): [#def18]
libxkbcommon-xkbcommon-1.13.1/test/test.h:153:5: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(test_get_path("locale/en_US.UTF-8/Compose"), "rb")’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:18:1: enter_function: entry to ‘main’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:28:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:30:12: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:31:12: acquire_resource: opened here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:32:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: call_function: calling ‘xkb_enable_quiet_logging’ from ‘main’
#  151|   {
#  152|       xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL);
#  153|->     xkb_context_set_log_verbosity(ctx, XKB_LOG_VERBOSITY_MINIMAL);
#  154|   }
#  155|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def19]
libxkbcommon-xkbcommon-1.13.1/test/test.h:153:5: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(test_get_path("locale/en_US.UTF-8/Compose"), "rb")’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:18:1: enter_function: entry to ‘main’
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:28:5: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:30:12: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:31:12: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:32:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/bench/compose.c:39:5: call_function: calling ‘xkb_enable_quiet_logging’ from ‘main’
#  151|   {
#  152|       xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL);
#  153|->     xkb_context_set_log_verbosity(ctx, XKB_LOG_VERBOSITY_MINIMAL);
#  154|   }
#  155|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def20]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[0]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: throw: if ‘perror’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: danger: ‘stdin_pipe[0]’ leaks here
#  169|       }
#  170|       if (posix_spawn_file_actions_init(&action)) {
#  171|->         perror("spawn_file_actions_init error");
#  172|           goto posix_spawn_file_actions_init_error;
#  173|       }

Error: GCC_ANALYZER_WARNING (CWE-775): [#def21]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[1]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: throw: if ‘perror’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: danger: ‘stdin_pipe[1]’ leaks here
#  169|       }
#  170|       if (posix_spawn_file_actions_init(&action)) {
#  171|->         perror("spawn_file_actions_init error");
#  172|           goto posix_spawn_file_actions_init_error;
#  173|       }

Error: GCC_ANALYZER_WARNING (CWE-775): [#def22]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:219:5: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[0]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:178:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:178:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:179:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:219:5: throw: if ‘perror’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:219:5: danger: ‘stdin_pipe[0]’ leaks here
#  217|   
#  218|   posix_spawn_file_actions_error:
#  219|->     perror("posix_spawn_file_actions_* error");
#  220|   posix_spawn_file_actions_init_error:
#  221|       close(stdin_pipe[PIPE_WRITE]);

Error: GCC_ANALYZER_WARNING (CWE-775): [#def23]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[0]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: throw: if ‘close’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: danger: ‘stdin_pipe[0]’ leaks here
#  219|       perror("posix_spawn_file_actions_* error");
#  220|   posix_spawn_file_actions_init_error:
#  221|->     close(stdin_pipe[PIPE_WRITE]);
#  222|       close(stdin_pipe[PIPE_READ]);
#  223|       ret = TEST_SETUP_FAILURE;

Error: GCC_ANALYZER_WARNING (CWE-775): [#def24]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[1]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:171:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: throw: if ‘close’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:221:5: danger: ‘stdin_pipe[1]’ leaks here
#  219|       perror("posix_spawn_file_actions_* error");
#  220|   posix_spawn_file_actions_init_error:
#  221|->     close(stdin_pipe[PIPE_WRITE]);
#  222|       close(stdin_pipe[PIPE_READ]);
#  223|       ret = TEST_SETUP_FAILURE;

Error: GCC_ANALYZER_WARNING (CWE-775): [#def25]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:222:5: warning[-Wanalyzer-fd-leak]: leak of file descriptor ‘stdin_pipe[0]’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:145:5: branch_false: following ‘false’ branch (when ‘keymap’ is non-NULL)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:148:11: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:165:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:170:9: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:222:5: throw: if ‘close’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:222:5: danger: ‘stdin_pipe[0]’ leaks here
#  220|   posix_spawn_file_actions_init_error:
#  221|       close(stdin_pipe[PIPE_WRITE]);
#  222|->     close(stdin_pipe[PIPE_READ]);
#  223|       ret = TEST_SETUP_FAILURE;
#  224|   cleanup:

Error: GCC_ANALYZER_WARNING (CWE-775): [#def26]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: warning[-Wanalyzer-file-leak]: leak of FILE ‘file’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:257:1: enter_function: entry to ‘test_keymap_roundtrip’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:265:9: branch_false: following ‘false’ branch (when the strings are non-equal)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:272:16: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:272:16: acquire_resource: opened here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:273:12: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: throw: if ‘read_file’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: danger: ‘file’ leaks here; was opened at [(7)](sarif:/runs/0/results/6/codeFlows/0/threadFlows/0/locations/6)
#  276|           }
#  277|       }
#  278|->     char *original = read_file(keymap_path, file);
#  279|       fclose(file);
#  280|       if (!original)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def27]
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: warning[-Wanalyzer-malloc-leak]: leak of ‘file’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:257:1: enter_function: entry to ‘test_keymap_roundtrip’
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:265:9: branch_false: following ‘false’ branch (when the strings are non-equal)...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:272:16: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:272:16: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:273:12: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: throw: if ‘read_file’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/x11comp.c:278:22: danger: ‘file’ leaks here; was allocated at [(7)](sarif:/runs/0/results/7/codeFlows/0/threadFlows/0/locations/6)
#  276|           }
#  277|       }
#  278|->     char *original = read_file(keymap_path, file);
#  279|       fclose(file);
#  280|       if (!original)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def28]
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:77:9: warning[-Wanalyzer-malloc-leak]: leak of ‘tmpfile()’
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:46:18: acquire_memory: allocated here
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:47:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:51:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:152:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:153:9: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:157:13: throw: if ‘waitpid’ throws an exception...
libxkbcommon-xkbcommon-1.13.1/test/xvfb-wrapper.c:77:9: danger: ‘tmpfile()’ leaks here; was allocated at [(1)](sarif:/runs/0/results/1/codeFlows/0/threadFlows/0/locations/0)
#   75|       ret = posix_spawnp(&xvfb_pid, "Xvfb", NULL, NULL, xvfb_argv, envp);
#   76|       if (ret != 0) {
#   77|->         fprintf(stderr,
#   78|                   "[ERROR] Cannot run Xvfb. posix_spawnp error %d: %s\n",
#   79|                   ret, strerror(ret));

Error: GCC_ANALYZER_WARNING (CWE-688): [#def29]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:290:5: warning[-Wanalyzer-null-argument]: use of NULL ‘parent2_node.item’ where non-null expected
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:340:21: release_memory: ‘parent2_node.item’ is NULL
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:341:21: release_memory: ‘parent2_node.item’ is NULL
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  288|       /* Node identifier */
#  289|       darray_size(*node) = 0;
#  290|->     darray_append_string(
#  291|           *node,
#  292|           xkb_file_section_get_string(section, inc->path)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def30]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:295:9: warning[-Wanalyzer-malloc-leak]: leak of ‘parent2_node.item’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  293|       );
#  294|       if (inc->section) {
#  295|->         darray_append_lit(*node, "(");
#  296|           darray_append_string(
#  297|               *node,

Error: GCC_ANALYZER_WARNING (CWE-401): [#def31]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:296:9: warning[-Wanalyzer-malloc-leak]: leak of ‘parent2_node.item’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  294|       if (inc->section) {
#  295|           darray_append_lit(*node, "(");
#  296|->         darray_append_string(
#  297|               *node,
#  298|               xkb_file_section_get_string(section, inc->section)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def32]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:300:9: warning[-Wanalyzer-malloc-leak]: leak of ‘parent2_node.item’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  298|               xkb_file_section_get_string(section, inc->section)
#  299|           );
#  300|->         darray_append_lit(*node, ")");
#  301|       }
#  302|   

Error: GCC_ANALYZER_WARNING (CWE-688): [#def33]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:305:5: warning[-Wanalyzer-null-argument]: use of NULL ‘parent2_label.item’ where non-null expected
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  303|       /* Node label */
#  304|       darray_size(*label) = 0;
#  305|->     darray_append_lit(*label, "<B>");
#  306|       darray_append_string(
#  307|           *label,

Error: GCC_ANALYZER_WARNING (CWE-401): [#def34]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:306:5: warning[-Wanalyzer-malloc-leak]: leak of ‘parent2_label.item’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  304|       darray_size(*label) = 0;
#  305|       darray_append_lit(*label, "<B>");
#  306|->     darray_append_string(
#  307|           *label,
#  308|           ((output_options & OUTPUT_YAML_SHORT_LABELS)

Error: GCC_ANALYZER_WARNING (CWE-401): [#def35]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:312:5: warning[-Wanalyzer-malloc-leak]: leak of ‘parent2_label.item’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:329:1: enter_function: entry to ‘print_dot_included_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:343:9: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:344:17: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:345:22: call_function: calling ‘print_dot_node’ from ‘print_dot_included_sections’
#  310|               : xkb_file_section_get_string(section, inc->path))
#  311|       );
#  312|->     darray_append_lit(*label, "</B>");
#  313|       if (inc->section) {
#  314|           darray_append_lit(*label, "(");

Error: COMPILER_WARNING (CWE-252): [#def36]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c: scope_hint: In function ‘print_dot’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:385:9: warning[-Wunused-result]: ignoring return value of ‘realpath’ declared with attribute ‘warn_unused_result’
#  385 |         realpath(path, root);
#      |         ^~~~~~~~~~~~~~~~~~~~
#  383|       } else {
#  384|   #ifdef HAVE_REAL_PATH
#  385|->         realpath(path, root);
#  386|   #else
#  387|           if (unlikely(!strcpy_safe(root, sizeof(root), path)))

Error: GCC_ANALYZER_WARNING (CWE-688): [#def37]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:408:17: warning[-Wanalyzer-null-argument]: use of NULL ‘parent_node.item’ where non-null expected
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:812:1: enter_function: entry to ‘print_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:879:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:886:39: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:892:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:898:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:909:14: call_function: calling ‘print_dot’ from ‘print_sections’
#  406|               } else {
#  407|                   /* Root node set globally */
#  408|->                 darray_append_string(root_node, root);
#  409|                   printf("\t\"%s\" [label=<<B>%s</B>>, style=\"rounded,filled\"];\n",
#  410|                          darray_items(root_node), root);

Error: GCC_ANALYZER_WARNING (CWE-688): [#def38]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:422:13: warning[-Wanalyzer-null-argument]: use of NULL ‘<unknown>’ where non-null expected
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:812:1: enter_function: entry to ‘print_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:879:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:886:39: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:892:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:898:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:909:14: call_function: calling ‘print_dot’ from ‘print_sections’
#  420|           /* Prefix with section type to avoid ID clashes */
#  421|           if (is_composite_file) {
#  422|->             darray_append_string(parent_node,
#  423|                                    xkb_file_type_name(section->file_type));
#  424|               darray_append_lit(parent_node, ":");

Error: GCC_ANALYZER_WARNING (CWE-688): [#def39]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:427:9: warning[-Wanalyzer-null-argument]: use of NULL ‘parent_label.item’ where non-null expected
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:812:1: enter_function: entry to ‘print_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:879:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:886:39: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:892:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:898:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:909:14: call_function: calling ‘print_dot’ from ‘print_sections’
#  425|           }
#  426|           /* Append full path & section */
#  427|->         darray_append_string(parent_node, root);
#  428|           if (section->name) {
#  429|               darray_append_lit(parent_node, "(");

Error: GCC_ANALYZER_WARNING (CWE-415): [#def40]
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:448:13: warning[-Wanalyzer-double-free]: double-‘free’ of ‘<unknown>’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:812:1: enter_function: entry to ‘print_sections’
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:879:8: branch_true: following ‘true’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:886:39: branch_true: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:892:8: branch_false: following ‘false’ branch...
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:898:5: branch_false: ...to here
libxkbcommon-xkbcommon-1.13.1/tools/introspection.c:909:14: call_function: calling ‘print_dot’ from ‘print_sections’
#  446|           if (!is_composite_file || section->file_type == FILE_TYPE_KEYMAP) {
#  447|               /* Display file only for top-level components */
#  448|->             darray_append_lit(parent_label, "<B>");
#  449|               if (root_file && (output_options & OUTPUT_YAML_SHORT_LABELS)) {
#  450|                   darray_append_string(parent_label, root_file);

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-14.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-namelibxkbcommon-1.11.0-1.fc43
diffbase-store-results-to/tmp/tmpvre7oyss/libxkbcommon-1.11.0-1.fc43.tar.xz
diffbase-time-created2026-01-08 19:19:28
diffbase-time-finished2026-01-08 19:22:34
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpvre7oyss/libxkbcommon-1.11.0-1.fc43.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpvre7oyss/libxkbcommon-1.11.0-1.fc43.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-14.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-namelibxkbcommon-1.13.1-1.fc44
store-results-to/tmp/tmppoyznkvx/libxkbcommon-1.13.1-1.fc44.tar.xz
time-created2026-01-08 19:23:16
time-finished2026-01-08 19:26:00
titleNewly introduced findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmppoyznkvx/libxkbcommon-1.13.1-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmppoyznkvx/libxkbcommon-1.13.1-1.fc44.src.rpm'
tool-versioncsmock-3.8.3.20251215.161544.g62de9a5-1.el9