Fixed findings

List of Findings

Error: GCC_ANALYZER_WARNING (CWE-476): [#def1]
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:140:52: warning[-Wanalyzer-null-dereference]: dereference of NULL '0'
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:129:1: enter_function: entry to '__xfs_ag_resv_free'
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:138:16: call_function: inlined call to 'xfs_perag_resv' from '__xfs_ag_resv_free'
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:139:12: branch_true: following 'true' branch...
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:140:17: branch_true: ...to here
xfsprogs-6.12.0/libxfs/xfs_ag_resv.c:140:52: danger: dereference of NULL '<unknown>'
#  138|   	resv = xfs_perag_resv(pag, type);
#  139|   	if (pag->pag_agno == 0)
#  140|-> 		pag->pag_mount->m_ag_max_usable += resv->ar_asked;
#  141|   	/*
#  142|   	 * RMAPBT blocks come from the AGFL and AGFL blocks are always

Error: GCC_ANALYZER_WARNING (CWE-476): [#def2]
xfsprogs-6.12.0/libxfs/xfs_dir2_leaf.c:1341:57: warning[-Wanalyzer-null-dereference]: dereference of NULL 'dbp'
xfsprogs-6.12.0/libxfs/xfs_dir2_leaf.c:1396:1: enter_function: entry to 'xfs_dir2_leaf_removename'
xfsprogs-6.12.0/libxfs/xfs_dir2_leaf.c:1424:17: call_function: calling 'xfs_dir2_leaf_lookup_int' from 'xfs_dir2_leaf_removename'
# 1339|   		 * Point to the data entry.
# 1340|   		 */
# 1341|-> 		dep = (xfs_dir2_data_entry_t *)((char *)dbp->b_addr +
# 1342|   			xfs_dir2_dataptr_to_off(args->geo,
# 1343|   						be32_to_cpu(lep->address)));

Error: GCC_ANALYZER_WARNING (CWE-476): [#def3]
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:409:21: warning[-Wanalyzer-null-dereference]: dereference of NULL '0'
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:399:12: branch_false: following 'false' branch (when 'rec_diff != 0')...
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:403:15: branch_false: ...to here
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:404:12: branch_true: following 'true' branch (when 'rec_diff > 0')...
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:409:21: branch_true: ...to here
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:409:21: danger: dereference of NULL 'xfs_ifork_ptr(ip,  whichfork)'
#  407|   		 * allocate it now and get out.
#  408|   		 */
#  409|-> 		if (ifp->if_broot_bytes == 0) {
#  410|   			new_size = xfs_bmap_broot_space_calc(mp, rec_diff);
#  411|   			ifp->if_broot = kmalloc(new_size,

Error: GCC_ANALYZER_WARNING (CWE-476): [#def4]
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:445:40: warning[-Wanalyzer-null-dereference]: dereference of NULL '0'
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:399:12: branch_false: following 'false' branch (when 'rec_diff != 0')...
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:403:15: branch_false: ...to here
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:404:12: branch_false: following 'false' branch (when 'rec_diff <= 0')...
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:445:40: branch_false: ...to here
xfsprogs-6.12.0/libxfs/xfs_inode_fork.c:445:40: danger: dereference of NULL 'xfs_ifork_ptr(ip,  whichfork)'
#  443|   	 */
#  444|   	ASSERT((ifp->if_broot != NULL) && (ifp->if_broot_bytes > 0));
#  445|-> 	cur_max = xfs_bmbt_maxrecs(mp, ifp->if_broot_bytes, false);
#  446|   	new_max = cur_max + rec_diff;
#  447|   	ASSERT(new_max >= 0);

Error: GCC_ANALYZER_WARNING (CWE-476): [#def5]
xfsprogs-6.12.0/logprint/log_misc.c:144:5: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘item’
xfsprogs-6.12.0/logprint/log_misc.c:1338:6: enter_function: entry to ‘xfs_log_print’
xfsprogs-6.12.0/logprint/log_misc.c:1361:8: branch_false: following ‘false’ branch...
xfsprogs-6.12.0/logprint/log_misc.c:1365:8: branch_false: ...to here
xfsprogs-6.12.0/logprint/log_misc.c:1369:5: call_function: calling ‘xlog_print_lseek’ from ‘xfs_log_print’
xfsprogs-6.12.0/logprint/log_misc.c:1369:5: return_function: returning to ‘xfs_log_print’ from ‘xlog_print_lseek’
xfsprogs-6.12.0/logprint/log_misc.c:1373:12: branch_false: following ‘false’ branch...
xfsprogs-6.12.0/logprint/log_misc.c:1378:13: branch_false: ...to here
xfsprogs-6.12.0/logprint/log_misc.c:1387:12: branch_false: following ‘false’ branch...
xfsprogs-6.12.0/logprint/log_misc.c:1397:13: branch_false: ...to here
xfsprogs-6.12.0/logprint/log_misc.c:1424:17: call_function: calling ‘xlog_print_record’ from ‘xfs_log_print’
#  142|   
#  143|       item	  = (xlog_split_item_t *)calloc(sizeof(xlog_split_item_t), 1);
#  144|->     item->si_xtid  = tid;
#  145|       item->si_skip = skip;
#  146|       item->si_next = split_list;

Error: GCC_ANALYZER_WARNING (CWE-476): [#def6]
xfsprogs-6.12.0/mkfs/proto.c:512:17: warning[-Wanalyzer-null-dereference]: dereference of NULL ‘name’
xfsprogs-6.12.0/mkfs/proto.c:741:1: enter_function: entry to ‘parse_proto’
xfsprogs-6.12.0/mkfs/proto.c:748:9: call_function: calling ‘parseproto’ from ‘parse_proto’
#  510|   	memset(&creds, 0, sizeof(creds));
#  511|   	mstr = getstr(pp);
#  512|-> 	switch (mstr[0]) {
#  513|   	case '-':
#  514|   		fmt = IF_REGULAR;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def7]
xfsprogs-6.12.0/repair/phase6.c:317:17: warning[-Wanalyzer-malloc-leak]: leak of ‘dir_hash_init(*ip.i_disk_size)’
xfsprogs-6.12.0/repair/phase6.c:3065:1: enter_function: entry to ‘phase6’
xfsprogs-6.12.0/repair/phase6.c:3147:9: call_function: calling ‘update_missing_dotdot_entries’ from ‘phase6’
#  315|   	int			hsize;
#  316|   
#  317|-> 	hsize = size / 64;
#  318|   	if (hsize < 16)
#  319|   		hsize = 16;

Scan Properties

analyzer-version-clippy1.86.0
analyzer-version-cppcheck2.17.1
analyzer-version-gcc15.0.1
analyzer-version-gcc-analyzer15.0.1
analyzer-version-shellcheck0.10.0
analyzer-version-unicontrol0.0.2
diffbase-analyzer-version-clippy1.86.0
diffbase-analyzer-version-cppcheck2.17.1
diffbase-analyzer-version-gcc15.0.1
diffbase-analyzer-version-gcc-analyzer15.0.1
diffbase-analyzer-version-shellcheck0.10.0
diffbase-analyzer-version-unicontrol0.0.2
diffbase-enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
diffbase-exit-code0
diffbase-hostip-172-16-1-96.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.20250425.124705.g1c7c448.main-1.el9.noarch
diffbase-mock-configfedora-rawhide-x86_64
diffbase-project-namexfsprogs-6.14.0-1.fc43
diffbase-store-results-to/tmp/tmpoque1cx9/xfsprogs-6.14.0-1.fc43.tar.xz
diffbase-time-created2025-04-25 16:10:26
diffbase-time-finished2025-04-25 16:13:54
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'unicontrol,cppcheck,gcc,clippy,shellcheck' '-o' '/tmp/tmpoque1cx9/xfsprogs-6.14.0-1.fc43.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpoque1cx9/xfsprogs-6.14.0-1.fc43.src.rpm'
diffbase-tool-versioncsmock-3.8.1.20250422.172604.g26bc3d6-1.el9
enabled-pluginsclippy, cppcheck, gcc, shellcheck, unicontrol
exit-code0
hostip-172-16-1-96.us-west-2.compute.internal
known-false-positives/usr/share/csmock/known-false-positives.js
known-false-positives-rpmknown-false-positives-0.0.0.20250425.124705.g1c7c448.main-1.el9.noarch
mock-configfedora-rawhide-x86_64
project-namexfsprogs-6.12.0-3.fc42
store-results-to/tmp/tmpn7exzfau/xfsprogs-6.12.0-3.fc42.tar.xz
time-created2025-04-25 16:06:19
time-finished2025-04-25 16:09:57
titleFixed findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'unicontrol,cppcheck,gcc,clippy,shellcheck' '-o' '/tmp/tmpn7exzfau/xfsprogs-6.12.0-3.fc42.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpn7exzfau/xfsprogs-6.12.0-3.fc42.src.rpm'
tool-versioncsmock-3.8.1.20250422.172604.g26bc3d6-1.el9