Fixed findings

List of Findings

Error: CPPCHECK_WARNING (CWE-476): [#def1]
libdvdread-7.0.1/src/dvd_reader.c:480: warning[nullPointerOutOfMemory]: If memory allocation fails, then there is a possible null pointer dereference: ctx
#  478|     char *path = NULL, *new_path = NULL, *path_copy = NULL;
#  479|     dvd_reader_t *ctx = calloc(1, sizeof(*ctx));
#  480|->   ctx->dvd_type = type;
#  481|     if(!ctx)
#  482|         return NULL;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
libdvdread-7.0.1/src/dvd_reader.c:1007:1: warning[-Wanalyzer-malloc-leak]: leak of ‘mkb_file’
libdvdread-7.0.1/src/dvd_reader.c:453:12: enter_function: entry to ‘cpxm_init_condition’
libdvdread-7.0.1/src/dvd_reader.c:458:13: call_function: calling ‘cppm_get_mkb_or_backup’ from ‘cpxm_init_condition’
# 1005|   
# 1006|     return p_mkb;
# 1007|-> }
# 1008|   
# 1009|   static dvd_file_t *DVDOpenVOBUDF( dvd_reader_t *ctx, int title, int menu )

Error: GCC_ANALYZER_WARNING (CWE-457): [#def3]
libdvdread-7.0.1/src/dvd_reader.c:1459:5: warning[-Wanalyzer-use-of-uninitialized-value]: use of uninitialized value ‘*dvd_file.cache + (sizetype)((long int)offset * 2048)’
libdvdread-7.0.1/src/dvd_reader.c:1671:5: enter_function: entry to ‘DVDDiscID’
libdvdread-7.0.1/src/dvd_reader.c:1680:5: branch_false: following ‘false’ branch...
libdvdread-7.0.1/src/dvd_reader.c:1683:13: branch_false: ...to here
libdvdread-7.0.1/src/dvd_reader.c:1684:5: branch_false: following ‘false’ branch...
libdvdread-7.0.1/src/dvd_reader.c:1689:16: branch_false: ...to here
libdvdread-7.0.1/src/dvd_reader.c:1698:19: branch_true: following ‘true’ branch...
libdvdread-7.0.1/src/dvd_reader.c:1699:28: branch_true: ...to here
libdvdread-7.0.1/src/dvd_reader.c:1699:28: call_function: calling ‘DVDOpenFile’ from ‘DVDDiscID’
libdvdread-7.0.1/src/dvd_reader.c:1699:28: return_function: returning to ‘DVDDiscID’ from ‘DVDOpenFile’
libdvdread-7.0.1/src/dvd_reader.c:1700:7: branch_true: following ‘true’ branch...
libdvdread-7.0.1/src/dvd_reader.c:1702:27: branch_true: ...to here
libdvdread-7.0.1/src/dvd_reader.c:1705:9: branch_false: following ‘false’ branch (when ‘buffer_base’ is non-NULL)...
libdvdread-7.0.1/src/dvd_reader.c:1711:32: branch_false: ...to here
libdvdread-7.0.1/src/dvd_reader.c:1713:20: call_function: calling ‘DVDReadBytes’ from ‘DVDDiscID’
# 1457|       /* Copy the cache at a specified offset into data. offset and block_count
# 1458|        * must be converted into bytes */
# 1459|->     memcpy( data, dvd_file->cache + (off_t)offset * (off_t)DVD_VIDEO_LB_LEN,
# 1460|               (off_t)block_count * (off_t)DVD_VIDEO_LB_LEN );
# 1461|   

Error: COMPILER_WARNING (CWE-195): [#def4]
libdvdread-7.0.1/src/ifo_read.c: scope_hint: In function ‘ifoRead_PGC_COMMAND_TBL’
libdvdread-7.0.1/src/ifo_read.c:1270:38: warning[-Wsign-compare]: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’
# 1270 |               + PGC_COMMAND_TBL_SIZE <= cmd_tbl->last_byte + 1);
#      |                                      ^~
libdvdread-7.0.1/src/ifo_read.c:56:8: note: in definition of macro ‘CHECK_VALUE’
#   56 |   if(!(arg)) {\
#      |        ^~~
# 1268|     CHECK_VALUE(cmd_tbl->nr_of_pre + cmd_tbl->nr_of_post + cmd_tbl->nr_of_cell<= 255);
# 1269|     CHECK_VALUE((cmd_tbl->nr_of_pre + cmd_tbl->nr_of_post + cmd_tbl->nr_of_cell) * COMMAND_DATA_SIZE
# 1270|->               + PGC_COMMAND_TBL_SIZE <= cmd_tbl->last_byte + 1);
# 1271|   
# 1272|     if(cmd_tbl->nr_of_pre != 0) {

Error: COMPILER_WARNING (CWE-465): [#def5]
libdvdread-7.0.1/src/ifo_read.c: scope_hint: In function ‘ifoRead_PGCIT_internal’
libdvdread-7.0.1/src/ifo_read.c:2470:21: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2470 |         ifoFree_PGC(&pgcit->pgci_srp[j].pgc);
#      |                     ^~~~~~~~~~~~~~~~~~~~~~~
# 2468|         int j;
# 2469|         for(j = 0; j < i; j++) {
# 2470|->         ifoFree_PGC(&pgcit->pgci_srp[j].pgc);
# 2471|         }
# 2472|         goto fail;

Error: COMPILER_WARNING (CWE-465): [#def6]
libdvdread-7.0.1/src/ifo_read.c:2470:21: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2468|         int j;
# 2469|         for(j = 0; j < i; j++) {
# 2470|->         ifoFree_PGC(&pgcit->pgci_srp[j].pgc);
# 2471|         }
# 2472|         goto fail;

Error: COMPILER_WARNING (CWE-465): [#def7]
libdvdread-7.0.1/src/ifo_read.c: scope_hint: In function ‘ifoFree_PGCIT_internal’
libdvdread-7.0.1/src/ifo_read.c:2496:19: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2496 |       ifoFree_PGC(&(*pgcit)->pgci_srp[i].pgc);
#      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
# 2494|       for(i = 0; i < (*pgcit)->nr_of_pgci_srp; i++)
# 2495|       {
# 2496|->       ifoFree_PGC(&(*pgcit)->pgci_srp[i].pgc);
# 2497|       }
# 2498|       free((*pgcit)->pgci_srp);

Error: COMPILER_WARNING (CWE-465): [#def8]
libdvdread-7.0.1/src/ifo_read.c:2496:19: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2494|       for(i = 0; i < (*pgcit)->nr_of_pgci_srp; i++)
# 2495|       {
# 2496|->       ifoFree_PGC(&(*pgcit)->pgci_srp[i].pgc);
# 2497|       }
# 2498|       free((*pgcit)->pgci_srp);

Error: COMPILER_WARNING (CWE-465): [#def9]
libdvdread-7.0.1/src/ifo_read.c: scope_hint: In function ‘ifoRead_PGCI_UT’
libdvdread-7.0.1/src/ifo_read.c:2628:32: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2628 |         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
#      |                                ^~~~~~~~~~~~~~~~~~~~~
# 2626|         unsigned int j;
# 2627|         for(j = 0; j < i; j++) {
# 2628|->         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
# 2629|         }
# 2630|         free(pgci_ut->lu);

Error: COMPILER_WARNING (CWE-465): [#def10]
libdvdread-7.0.1/src/ifo_read.c:2628:32: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2626|         unsigned int j;
# 2627|         for(j = 0; j < i; j++) {
# 2628|->         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
# 2629|         }
# 2630|         free(pgci_ut->lu);

Error: COMPILER_WARNING (CWE-465): [#def11]
libdvdread-7.0.1/src/ifo_read.c:2641:32: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2641 |         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
#      |                                ^~~~~~~~~~~~~~~~~~~~~
# 2639|         unsigned int j;
# 2640|         for(j = 0; j <= i; j++) {
# 2641|->         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
# 2642|         }
# 2643|         free(pgci_ut->lu);

Error: COMPILER_WARNING (CWE-465): [#def12]
libdvdread-7.0.1/src/ifo_read.c:2641:32: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2639|         unsigned int j;
# 2640|         for(j = 0; j <= i; j++) {
# 2641|->         ifoFree_PGCIT_internal(&pgci_ut->lu[j].pgcit);
# 2642|         }
# 2643|         free(pgci_ut->lu);

Error: COMPILER_WARNING (CWE-465): [#def13]
libdvdread-7.0.1/src/ifo_read.c: scope_hint: In function ‘ifoFree_PGCI_UT’
libdvdread-7.0.1/src/ifo_read.c:2664:30: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2664 |       ifoFree_PGCIT_internal(&ifofile->pgci_ut->lu[i].pgcit);
#      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 2662|   
# 2663|       for(i = 0; i < ifofile->pgci_ut->nr_of_lus; i++) {
# 2664|->       ifoFree_PGCIT_internal(&ifofile->pgci_ut->lu[i].pgcit);
# 2665|       }
# 2666|       free(ifofile->pgci_ut->lu);

Error: COMPILER_WARNING (CWE-465): [#def14]
libdvdread-7.0.1/src/ifo_read.c:2664:30: warning[-Waddress-of-packed-member]: taking address of packed member of ‘struct <anonymous>’ may result in an unaligned pointer value
# 2662|   
# 2663|       for(i = 0; i < ifofile->pgci_ut->nr_of_lus; i++) {
# 2664|->       ifoFree_PGCIT_internal(&ifofile->pgci_ut->lu[i].pgcit);
# 2665|       }
# 2666|       free(ifofile->pgci_ut->lu);

Scan Properties

analyzer-version-clippy1.97.1
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.97.1
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-42.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-namelibdvdread-7.1.1-1.fc45
diffbase-store-results-to/tmp/tmpb7wwk_e4/libdvdread-7.1.1-1.fc45.tar.xz
diffbase-time-created2026-08-03 17:13:45
diffbase-time-finished2026-08-03 17:15:03
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmpb7wwk_e4/libdvdread-7.1.1-1.fc45.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpb7wwk_e4/libdvdread-7.1.1-1.fc45.src.rpm'
diffbase-tool-versioncsmock-3.8.7.20260803.142340.gb75b18e-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-42.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-namelibdvdread-7.0.1-1.fc44
store-results-to/tmp/tmp5_kx10as/libdvdread-7.0.1-1.fc44.tar.xz
time-created2026-08-03 17:11:20
time-finished2026-08-03 17:13:29
titleFixed findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,clippy,unicontrol,shellcheck,cppcheck' '-o' '/tmp/tmp5_kx10as/libdvdread-7.0.1-1.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmp5_kx10as/libdvdread-7.0.1-1.fc44.src.rpm'
tool-versioncsmock-3.8.7.20260803.142340.gb75b18e-1.el9