Fixed findings

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-775): [#def1]
libxs-1.0.0/libxs/libxs_mhd.h:12: included_from: Included from here.
libxs-1.0.0/src/libxs_mhd.c:9: included_from: Included from here.
libxs-1.0.0/src/libxs_mhd.c: scope_hint: In function ‘libxs_mhd_read’
libxs-1.0.0/libxs/libxs.h:25:38: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(filename, "rb")’
libxs-1.0.0/src/libxs_mhd.c:638:29: note: in expansion of macro ‘LIBXS_TYPESIZE’
libxs-1.0.0/libxs/libxs.h:12: included_from: Included from here.
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_mhd.c:662:11: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/src/libxs_mhd.c:638:29: note: in expansion of macro ‘LIBXS_TYPESIZE’
#   23|   
#   24|   /** Determine the type-size of the type (libxs_data_t). */
#   25|-> #define LIBXS_TYPESIZE(ENUM) ((ENUM) >> 4)
#   26|   
#   27|   /** Removes type-size info from type (libxs_data_t). */

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
libxs-1.0.0/libxs/libxs.h:25:38: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(filename, "rb")’
libxs-1.0.0/src/libxs_mhd.c:638:29: note: in expansion of macro ‘LIBXS_TYPESIZE’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_mhd.c:662:11: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/src/libxs_mhd.c:638:29: note: in expansion of macro ‘LIBXS_TYPESIZE’
#   23|   
#   24|   /** Determine the type-size of the type (libxs_data_t). */
#   25|-> #define LIBXS_TYPESIZE(ENUM) ((ENUM) >> 4)
#   26|   
#   27|   /** Removes type-size info from type (libxs_data_t). */

Error: GCC_ANALYZER_WARNING (CWE-457): [#def3]
libxs-1.0.0/src/libxs_predict.c: scope_hint: In function ‘internal_libxs_predict_classify2’
libxs-1.0.0/src/libxs_predict.c:445:27: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘dists[worst]’
libxs-1.0.0/libxs/libxs.h:12: included_from: Included from here.
libxs-1.0.0/libxs/libxs_math.h:12: included_from: Included from here.
libxs-1.0.0/libxs/libxs_predict.h:12: included_from: Included from here.
libxs-1.0.0/src/libxs_predict.c:9: included_from: Included from here.
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2061:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:778:46: note: in definition of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:1622:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/src/libxs_predict.c: scope_hint: In function ‘internal_libxs_predict_classify2’
#  443|           if (dists[wi] > dists[worst]) worst = wi;
#  444|         }
#  445|->       if (sqrt(d2) < dists[worst]) {
#  446|           candidates[worst] = cl->raw_outputs[(size_t)i * nouts + output_j];
#  447|           dists[worst] = sqrt(d2);

Error: GCC_ANALYZER_WARNING (CWE-457): [#def4]
libxs-1.0.0/src/libxs_predict.c: scope_hint: In function ‘libxs_predict_inverse’
libxs-1.0.0/src/libxs_predict.c:2112:16: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘*<unknown>’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2061:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:778:46: note: in definition of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:1622:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2087:3: note: in expansion of macro ‘LIBXS_ASSERT’
# 2110|         int disqualified = 0;
# 2111|         for (j = 0; j < n && 0 == disqualified; ++j) {
# 2112|->         double target = target_outputs[j];
# 2113|           double actual = eout[j];
# 2114|           if (NULL != model->transforms) {

Error: GCC_ANALYZER_WARNING (CWE-457): [#def5]
libxs-1.0.0/src/libxs_predict.c:2138:18: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘*<unknown>’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2061:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:778:46: note: in definition of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2062:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:1622:3: note: in expansion of macro ‘LIBXS_ASSERT’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict.c:2087:3: note: in expansion of macro ‘LIBXS_ASSERT’
# 2136|           double score = 0;
# 2137|           for (j = 0; j < n; ++j) {
# 2138|->           double target = target_outputs[j];
# 2139|             double actual = eout[j];
# 2140|             double d;

Error: GCC_ANALYZER_WARNING (CWE-775): [#def6]
libxs-1.0.0/src/libxs_predict.c:2255: included_from: Included from here.
libxs-1.0.0/src/libxs_predict_csv.h: scope_hint: In function ‘libxs_predict_load_csv’
libxs-1.0.0/src/libxs_predict_csv.h:107:25: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(filename, "r")’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict_csv.h:101:3: note: in expansion of macro ‘LIBXS_ASSERT’
#  105|       double vals[128];
#  106|       double* inp = vals;
#  107|->     double* outp = vals + ninputs;
#  108|       const char* sep = delims;
#  109|       const char* input_tokens[64];

Error: GCC_ANALYZER_WARNING (CWE-401): [#def7]
libxs-1.0.0/src/libxs_predict_csv.h:107:25: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(filename, "r")’
libxs-1.0.0/libxs/libxs_macros.h:967:31: note: in expansion of macro ‘LIBXS_ASSUME’
libxs-1.0.0/src/libxs_predict_csv.h:101:3: note: in expansion of macro ‘LIBXS_ASSERT’
#  105|       double vals[128];
#  106|       double* inp = vals;
#  107|->     double* outp = vals + ninputs;
#  108|       const char* sep = delims;
#  109|       const char* input_tokens[64];

Scan Properties

analyzer-version-clippy1.96.0
analyzer-version-cppcheck2.21.1
analyzer-version-gcc16.1.1
analyzer-version-gcc-analyzer16.1.1
analyzer-version-shellcheck0.11.0
analyzer-version-unicontrol0.0.2
diffbase-analyzer-version-clippy1.96.0
diffbase-analyzer-version-cppcheck2.21.1
diffbase-analyzer-version-gcc16.1.1
diffbase-analyzer-version-gcc-analyzer16.1.1
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-238.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.20260524.213755.g3c6d0be.main-1.el9.noarch
diffbase-mock-configfedora-rawhide-x86_64
diffbase-project-namelibxs-1.0.0-1.20260627070700735330.pr21.1.g4b06e3013
diffbase-store-results-to/tmp/tmp3s2_5438/libxs-1.0.0-1.20260627070700735330.pr21.1.g4b06e3013.tar.xz
diffbase-time-created2026-06-27 10:12:35
diffbase-time-finished2026-06-27 10:14:26
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'unicontrol,shellcheck,gcc,clippy,cppcheck' '-o' '/tmp/tmp3s2_5438/libxs-1.0.0-1.20260627070700735330.pr21.1.g4b06e3013.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmp3s2_5438/libxs-1.0.0-1.20260627070700735330.pr21.1.g4b06e3013.src.rpm'
diffbase-tool-versioncsmock-3.8.7.HEAD-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-238.us-west-2.compute.internal
known-false-positives/usr/share/csmock/known-false-positives.js
known-false-positives-rpmknown-false-positives-0.0.0.20260524.213755.g3c6d0be.main-1.el9.noarch
mock-configfedora-rawhide-x86_64
project-namelibxs-1.0.0-1.20260625235357766098.main.0.g2132ebbc6
store-results-to/tmp/tmp06fge7cd/libxs-1.0.0-1.20260625235357766098.main.0.g2132ebbc6.tar.xz
time-created2026-06-27 10:08:46
time-finished2026-06-27 10:12:26
titleFixed findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'unicontrol,shellcheck,gcc,clippy,cppcheck' '-o' '/tmp/tmp06fge7cd/libxs-1.0.0-1.20260625235357766098.main.0.g2132ebbc6.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '/tmp/tmp06fge7cd/libxs-1.0.0-1.20260625235357766098.main.0.g2132ebbc6.src.rpm'
tool-versioncsmock-3.8.7.HEAD-1.el9