harfbuzz-10.1.0-1.fc42

List of Findings

Error: CPPCHECK_WARNING (CWE-457): [#def1]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-algs.hh:322: error[legacyUninitvar]: Uninitialized variable: pos++->v
#  320|   	  while (pos != end)
#  321|   	  {
#  322|-> 	    v  = pos++->v;
#  323|   	    h ^= mix(v);
#  324|   	    h *= m;

Error: CPPCHECK_WARNING (CWE-457): [#def2]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-algs.hh:977: warning[uninitvar]: Uninitialized variable: dst
#  975|   {
#  976|     /* It's illegal to pass 0 as size to memcpy. */
#  977|->   if (unlikely (!len)) return dst;
#  978|     return memcpy (dst, src, len);
#  979|   }

Error: CPPCHECK_WARNING (CWE-457): [#def3]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-bit-page.hh:62: warning[uninitvar]: Uninitialized variable: r
#   60|       for (unsigned int i = 0; i < ARRAY_LENGTH (v); i++)
#   61|         r.v[i] = op (v[i]);
#   62|->     return r;
#   63|     }
#   64|     template <typename Op>

Error: CPPCHECK_WARNING (CWE-457): [#def4]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-bit-page.hh:70: warning[uninitvar]: Uninitialized variable: r
#   68|       for (unsigned int i = 0; i < ARRAY_LENGTH (v); i++)
#   69|         r.v[i] = op (v[i], o.v[i]);
#   70|->     return r;
#   71|     }
#   72|     hb_vector_size_t operator | (const hb_vector_size_t &o) const

Error: CPPCHECK_WARNING (CWE-758): [#def5]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-iter.hh:776: error[missingReturn]: Found an exit path from function with non-void return type that has missing return statement
#  774|     inc (hb_type_identity<S2> s, hb_priority<1>)
#  775|       -> hb_void_t<decltype (hb_invoke (std::forward<S2> (s), hb_declval<T&> ()))>
#  776|->   { v = hb_invoke (std::forward<S2> (s), v); }
#  777|   
#  778|     void

Error: CPPCHECK_WARNING (CWE-401): [#def6]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-machinery.hh:258: error[memleak]: Memory leak: p
#  256|       Stored *p = (Stored *) hb_calloc (1, sizeof (Stored));
#  257|       if (likely (p))
#  258|->       p = new (p) Stored (data);
#  259|       return p;
#  260|     }

Error: CPPCHECK_WARNING (CWE-401): [#def7]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-machinery.hh:265: error[memleak]: Memory leak: p
#  263|       Stored *p = (Stored *) hb_calloc (1, sizeof (Stored));
#  264|       if (likely (p))
#  265|->       p = new (p) Stored ();
#  266|       return p;
#  267|     }

Error: CPPCHECK_WARNING (CWE-686): [#def8]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/src/hb-map.hh:67: error[memsetClass]: Using 'memcpy' on struct that contains a 'std::string'.
#   65|         prime = o.prime;
#   66|         max_chain_length = o.max_chain_length;
#   67|->       memcpy (items, o.items, sizeof (item_t) * (mask + 1));
#   68|         return;
#   69|       }

Error: GCC_ANALYZER_WARNING (CWE-476): [#def9]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-blob.c: scope_hint: In function ‘fixture_init’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-blob.c:167:7: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘data’
#  165|       case HB_MEMORY_MODE_WRITABLE:
#  166|         data = malloc (sizeof (test_data));
#  167|->       memcpy ((char *) data, test_data, sizeof (test_data));
#  168|         len = sizeof (test_data);
#  169|         free_func = (hb_destroy_func_t) free_up_free;

Error: GCC_ANALYZER_WARNING (CWE-476): [#def10]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-map.c: scope_hint: In function ‘test_map_userdata’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-map.c:73:9: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘data’
#   71|     int *data = (int *) malloc (sizeof (int));
#   72|     int *data2;
#   73|->   *data = 3123;
#   74|     hb_map_set_user_data (m, &key[0], data, free, TRUE);
#   75|     g_assert_cmpint (*((int *) hb_map_get_user_data (m, &key[0])), ==, 3123);

Error: GCC_ANALYZER_WARNING (CWE-476): [#def11]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-map.c:78:10: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘data2’
/usr/include/glib-2.0/glib.h:89: included_from: Included from here.
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-map.c:75:3: note: in expansion of macro ‘g_assert_cmpint’
#   76|   
#   77|     data2 = (int *) malloc (sizeof (int));
#   78|->   *data2 = 6343;
#   79|     hb_map_set_user_data (m, &key[0], data2, free, FALSE);
#   80|     g_assert_cmpint (*((int *) hb_map_get_user_data (m, &key[0])), ==, 3123);

Error: GCC_ANALYZER_WARNING (CWE-476): [#def12]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-multithread.c: scope_hint: In function ‘test_body’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-multithread.c:107:16: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘buffers’
#  105|     {
#  106|       hb_buffer_t *buffer = hb_buffer_create ();
#  107|->     buffers[i] = buffer;
#  108|       pthread_create (&threads[i], NULL, thread_func, buffer);
#  109|     }

Error: GCC_ANALYZER_WARNING (CWE-688): [#def13]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-multithread.c:108:5: warning[-Wanalyzer-possible-null-argument]: use of possibly-NULL ‘threads’ where non-null expected
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-multithread.c:26: included_from: Included from here.
/opt/gcc-latest/lib/gcc/x86_64-pc-linux-gnu/15.0.0/include-fixed/pthread.h:211:12: note: argument 1 of ‘pthread_create’ must be non-null
#  106|       hb_buffer_t *buffer = hb_buffer_create ();
#  107|       buffers[i] = buffer;
#  108|->     pthread_create (&threads[i], NULL, thread_func, buffer);
#  109|     }
#  110|   

Error: GCC_ANALYZER_WARNING (CWE-685): [#def14]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:526:29: warning[-Wanalyzer-va-list-exhausted]: ‘expected_tags’ has no more arguments (0 consumed)
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:521:3: note: in expansion of macro ‘g_assert_cmpuint’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:522:3: note: in expansion of macro ‘g_assert_cmpuint’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:522:3: note: in expansion of macro ‘g_assert_cmpuint’
#  524|     for (i = 0; i < script_count + language_count; i++)
#  525|     {
#  526|->     hb_tag_t expected_tag = hb_tag_from_string (va_arg (expected_tags, const char *), -1);
#  527|       hb_tag_t actual_tag = i < script_count ? script_tags[i] : language_tags[i - script_count];
#  528|       g_assert_cmphex (actual_tag, ==, expected_tag);

Error: GCC_ANALYZER_WARNING (CWE-685): [#def15]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c: scope_hint: In function ‘test_tags’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:526:29: warning[-Wanalyzer-va-list-exhausted]: ‘expected_tags’ has no more arguments (1 consumed)
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib.h:89: included_from: Included from here.
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:528:5: note: in expansion of macro ‘g_assert_cmphex’
#  524|     for (i = 0; i < script_count + language_count; i++)
#  525|     {
#  526|->     hb_tag_t expected_tag = hb_tag_from_string (va_arg (expected_tags, const char *), -1);
#  527|       hb_tag_t actual_tag = i < script_count ? script_tags[i] : language_tags[i - script_count];
#  528|       g_assert_cmphex (actual_tag, ==, expected_tag);

Error: GCC_ANALYZER_WARNING (CWE-685): [#def16]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:526:29: warning[-Wanalyzer-va-list-exhausted]: ‘expected_tags’ has no more arguments (2 consumed)
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:514:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
/usr/include/glib-2.0/glib/gmacros.h:1249:31: note: in expansion of macro ‘_G_BOOLEAN_EXPR_IMPL’
/usr/include/glib-2.0/glib/gmacros.h:1250:43: note: in expansion of macro ‘_G_BOOLEAN_EXPR’
/usr/include/glib-2.0/glib/gtestutils.h:276:49: note: in expansion of macro ‘G_LIKELY’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:515:3: note: in expansion of macro ‘g_assert’
harfbuzz-10.1.0-build/harfbuzz-10.1.0/test/api/test-ot-tag.c:528:5: note: in expansion of macro ‘g_assert_cmphex’
#  524|     for (i = 0; i < script_count + language_count; i++)
#  525|     {
#  526|->     hb_tag_t expected_tag = hb_tag_from_string (va_arg (expected_tags, const char *), -1);
#  527|       hb_tag_t actual_tag = i < script_count ? script_tags[i] : language_tags[i - script_count];
#  528|       g_assert_cmphex (actual_tag, ==, expected_tag);

Error: CPPCHECK_WARNING (CWE-823): [#def17]
harfbuzz-10.1.0-build/harfbuzz-10.1.0/util/ansi-print.hh:177: error[arrayIndexOutOfBounds]: Array 'freq[8]' accessed at index 8, which is out of bounds.
#  175|         if (i != bg && (fg == 8 || freq[fg] < freq[i]))
#  176|   	fg = i;
#  177|->     if (freq[fg] == 0) {
#  178|         fg = bg;
#  179|         unicolor = true;

Scan Properties

analyzer-version-clippy1.82.0
analyzer-version-cppcheck2.16.0
analyzer-version-gcc14.2.1
analyzer-version-gcc-analyzer15.0.0
analyzer-version-shellcheck0.10.0
analyzer-version-unicontrol0.0.2
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-122.us-west-2.compute.internal
mock-configfedora-rawhide-gcc-latest-x86_64
project-nameharfbuzz-10.1.0-1.fc42
store-results-to/tmp/tmpyui8_j5g/harfbuzz-10.1.0-1.fc42.tar.xz
time-created2024-11-13 00:28:16
time-finished2024-11-13 00:43:48
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-gcc-latest-x86_64' '-t' 'clippy,cppcheck,gcc,unicontrol,shellcheck' '-o' '/tmp/tmpyui8_j5g/harfbuzz-10.1.0-1.fc42.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install=gcc-latest' '--gcc-analyzer-bin=/opt/gcc-latest/bin/gcc' '/tmp/tmpyui8_j5g/harfbuzz-10.1.0-1.fc42.src.rpm'
tool-versioncsmock-3.7.1.20241107.094801.gb3f0f26.pr_192-1.el9