Newly introduced findings

List of Findings

Error: SHELLCHECK_WARNING (CWE-140): [#def1]
/usr/share/bash-completion/completions/flashrom.bash:36:16: warning[SC2207]: Prefer mapfile or read -a to split command output (or quote to avoid splitting).
#   34|   			;;
#   35|   		'-p'|'--programmer')
#   36|-> 			COMPREPLY=( $(compgen -W "asm106x atavia buspirate_spi ch341a_spi ch347_spi dediprog developerbox_spi digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi gfxnvidia internal it8212 jlink_spi linux_mtd linux_spi nic3com nicintel nicintel_eeprom nicintel_spi nicrealtek ogp_spi pickit2_spi pony_spi raiden_debug_spi rayer_spi satamv satasii serprog spidriver stlinkv3_spi usbblaster_spi " -- $cur) )
#   37|   			return 0
#   38|   			;;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def2]
flashrom-v1.6.0/ch347_spi.c:355:15: warning[-Wanalyzer-malloc-leak]: leak of ‘ch347_data’
flashrom-v1.6.0/ch347_spi.c:291:45: acquire_memory: allocated here
flashrom-v1.6.0/ch347_spi.c:292:12: branch_false: following ‘false’ branch (when ‘ch347_data’ is non-NULL)...
flashrom-v1.6.0/ch347_spi.c:297:23: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:298:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:307:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:309:16: branch_true: following ‘true’ branch...
flashrom-v1.6.0/ch347_spi.c:311:17: branch_true: ...to here
flashrom-v1.6.0/ch347_spi.c:319:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:325:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:331:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:337:39: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:337:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:343:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:344:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:349:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:355:15: throw: if ‘extract_programmer_param_str’ throws an exception...
flashrom-v1.6.0/ch347_spi.c:355:15: danger: ‘ch347_data’ leaks here; was allocated at [(1)](sarif:/runs/0/results/25/codeFlows/0/threadFlows/0/locations/0)
#  353|   
#  354|   	/* set CH347 clock division */
#  355|-> 	arg = extract_programmer_param_str(cfg, "spispeed");
#  356|   	if (arg) {
#  357|   		for (speed_index = 0; spispeeds[speed_index].name; speed_index++) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def3]
flashrom-v1.6.0/ch347_spi.c:364:17: warning[-Wanalyzer-malloc-leak]: leak of ‘ch347_data’
flashrom-v1.6.0/ch347_spi.c:291:45: acquire_memory: allocated here
flashrom-v1.6.0/ch347_spi.c:292:12: branch_false: following ‘false’ branch (when ‘ch347_data’ is non-NULL)...
flashrom-v1.6.0/ch347_spi.c:297:23: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:298:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:307:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:309:16: branch_true: following ‘true’ branch...
flashrom-v1.6.0/ch347_spi.c:311:17: branch_true: ...to here
flashrom-v1.6.0/ch347_spi.c:319:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:325:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:331:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:337:39: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:337:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:343:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:344:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:349:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:363:13: branch_true: following ‘true’ branch...
flashrom-v1.6.0/ch347_spi.c:364:17: branch_true: ...to here
flashrom-v1.6.0/ch347_spi.c:364:17: throw: if ‘print’ throws an exception...
flashrom-v1.6.0/ch347_spi.c:364:17: danger: ‘ch347_data’ leaks here; was allocated at [(1)](sarif:/runs/0/results/26/codeFlows/0/threadFlows/0/locations/0)
#  362|   	}
#  363|   	if (!spispeeds[speed_index].name || !arg) {
#  364|-> 		msg_perr("Unknown value of spispeed parameter, using default 15MHz clock spi.\n");
#  365|   		speed_index = 2;
#  366|   	}

Error: GCC_ANALYZER_WARNING (CWE-401): [#def4]
flashrom-v1.6.0/ch347_spi.c:371:17: warning[-Wanalyzer-malloc-leak]: leak of ‘ch347_data’
flashrom-v1.6.0/ch347_spi.c:291:45: acquire_memory: allocated here
flashrom-v1.6.0/ch347_spi.c:292:12: branch_false: following ‘false’ branch (when ‘ch347_data’ is non-NULL)...
flashrom-v1.6.0/ch347_spi.c:297:23: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:298:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:307:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:309:16: branch_true: following ‘true’ branch...
flashrom-v1.6.0/ch347_spi.c:311:17: branch_true: ...to here
flashrom-v1.6.0/ch347_spi.c:319:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:325:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:331:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:337:39: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:337:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:343:15: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:344:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:349:9: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:368:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/ch347_spi.c:371:17: branch_false: ...to here
flashrom-v1.6.0/ch347_spi.c:371:17: throw: if ‘print’ throws an exception...
flashrom-v1.6.0/ch347_spi.c:371:17: danger: ‘ch347_data’ leaks here; was allocated at [(1)](sarif:/runs/0/results/27/codeFlows/0/threadFlows/0/locations/0)
#  369|   		goto error_exit;
#  370|   	} else {
#  371|-> 		msg_pinfo("CH347 SPI clock set to %sHz.\n", spispeeds[speed_index].name);
#  372|   	}
#  373|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def5]
flashrom-v1.6.0/cli_classic.c:689:40: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/cli_classic.c:672:38: acquire_memory: allocated here
flashrom-v1.6.0/cli_classic.c:673:38: branch_false: following ‘false’ branch (when ‘referencefile’ is NULL)...
flashrom-v1.6.0/cli_classic.c:675:12: branch_false: ...to here
flashrom-v1.6.0/cli_classic.c:675:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/cli_classic.c:681:12: branch_false: following ‘false’ branch (when ‘filename’ is NULL)...
flashrom-v1.6.0/cli_classic.c:689:40: branch_false: ...to here
flashrom-v1.6.0/cli_classic.c:689:40: throw: if ‘get_layout’ throws an exception...
flashrom-v1.6.0/cli_classic.c:689:40: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/5/codeFlows/0/threadFlows/0/locations/0)
#  687|   	 * args if needed.
#  688|   	 */
#  689|-> 	if (read_buf_from_include_args(get_layout(flash), newcontents))
#  690|   		goto _free_ret;
#  691|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def6]
flashrom-v1.6.0/cli_classic.c:725:40: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/cli_classic.c:710:38: acquire_memory: allocated here
flashrom-v1.6.0/cli_classic.c:711:12: branch_false: following ‘false’ branch (when ‘newcontents’ is non-NULL)...
flashrom-v1.6.0/cli_classic.c:717:12: branch_false: ...to here
flashrom-v1.6.0/cli_classic.c:717:12: branch_false: following ‘false’ branch (when ‘filename’ is NULL)...
flashrom-v1.6.0/cli_classic.c:725:40: branch_false: ...to here
flashrom-v1.6.0/cli_classic.c:725:40: throw: if ‘get_layout’ throws an exception...
flashrom-v1.6.0/cli_classic.c:725:40: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/8/codeFlows/0/threadFlows/0/locations/0)
#  723|   	 * args if needed.
#  724|   	 */
#  725|-> 	if (read_buf_from_include_args(get_layout(flash), newcontents))
#  726|   		goto _free_ret;
#  727|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def7]
flashrom-v1.6.0/flashrom.c:714:25: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
#  712|   	unsigned int i, j, limit;
#  713|   	for (j = 0; j < len / gran; j++) {
#  714|-> 		limit = min (gran, len - j * gran);
#  715|   		/* Are 'have' and 'want' identical? */
#  716|   		if (!memcmp(have + j * gran, want + j * gran, limit))

Error: GCC_ANALYZER_WARNING (CWE-401): [#def8]
flashrom-v1.6.0/flashrom.c:714:25: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
#  712|   	unsigned int i, j, limit;
#  713|   	for (j = 0; j < len / gran; j++) {
#  714|-> 		limit = min (gran, len - j * gran);
#  715|   		/* Are 'have' and 'want' identical? */
#  716|   		if (!memcmp(have + j * gran, want + j * gran, limit))

Error: GCC_ANALYZER_WARNING (CWE-401): [#def9]
flashrom-v1.6.0/flashrom.c:1207:9: warning[-Wanalyzer-malloc-leak]: leak of ‘flashbuses_to_text(*flash_58(D)->chip.bustype)’
flashrom-v1.6.0/flashrom.c:1117:5: enter_function: entry to ‘probe_flash’
flashrom-v1.6.0/flashrom.c:1200:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1203:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1203:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1206:34: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1206:15: call_function: calling ‘flashbuses_to_text’ from ‘probe_flash’
flashrom-v1.6.0/flashrom.c:1206:15: return_function: returning to ‘probe_flash’ from ‘flashbuses_to_text’
flashrom-v1.6.0/flashrom.c:1207:9: branch_true: following ‘true’ branch...
flashrom-v1.6.0/flashrom.c:1207:9: branch_true: ...to here
flashrom-v1.6.0/flashrom.c:1207:9: throw: if ‘print’ throws an exception...
flashrom-v1.6.0/flashrom.c:1207:9: danger: ‘flashbuses_to_text(*flash_58(D)->chip.bustype)’ leaks here; was allocated at [(10)](sarif:/runs/0/results/14/codeFlows/0/threadFlows/0/locations/9)
# 1205|   
# 1206|   	tmp = flashbuses_to_text(flash->chip->bustype);
# 1207|-> 	msg_cinfo("%s %s flash chip \"%s\" (%d kB, %s) ", force ? "Assuming" : "Found",
# 1208|   		  flash->chip->vendor, flash->chip->name, flash->chip->total_size, tmp ? tmp : "?");
# 1209|   	free(tmp);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def10]
flashrom-v1.6.0/flashrom.c:1237:60: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1235|   		return;
# 1236|   
# 1237|-> 	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1238|   
# 1239|   	size_t total = 0;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def11]
flashrom-v1.6.0/flashrom.c:1237:60: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1235|   		return;
# 1236|   
# 1237|-> 	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1238|   
# 1239|   	size_t total = 0;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def12]
flashrom-v1.6.0/flashrom.c:1241:25: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1239|   	size_t total = 0;
# 1240|   	const struct romentry *entry = NULL;
# 1241|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1242|   		const struct flash_region *region = &entry->region;
# 1243|   		total += region->end - region->start + 1;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def13]
flashrom-v1.6.0/flashrom.c:1241:25: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1239|   	size_t total = 0;
# 1240|   	const struct romentry *entry = NULL;
# 1241|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1242|   		const struct flash_region *region = &entry->region;
# 1243|   		total += region->end - region->start + 1;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def14]
flashrom-v1.6.0/flashrom.c:1246:9: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1244|   	}
# 1245|   
# 1246|-> 	init_progress(flashctx, stage, total);
# 1247|   }
# 1248|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def15]
flashrom-v1.6.0/flashrom.c:1246:9: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1429:9: call_function: calling ‘setup_progress_from_layout’ from ‘erase_by_layout’
# 1244|   	}
# 1245|   
# 1246|-> 	init_progress(flashctx, stage, total);
# 1247|   }
# 1248|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def16]
flashrom-v1.6.0/flashrom.c:1258:54: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1256|   		return;
# 1257|   
# 1258|-> 	const struct flashrom_layout *flash_layout = get_layout(flashctx);
# 1259|   	const size_t page_size = flashctx->chip->page_size;
# 1260|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def17]
flashrom-v1.6.0/flashrom.c:1258:54: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1256|   		return;
# 1257|   
# 1258|-> 	const struct flashrom_layout *flash_layout = get_layout(flashctx);
# 1259|   	const size_t page_size = flashctx->chip->page_size;
# 1260|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def18]
flashrom-v1.6.0/flashrom.c:1264:25: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1262|   
# 1263|   	const struct romentry *entry = NULL;
# 1264|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1265|   		const struct flash_region *region = &entry->region;
# 1266|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def19]
flashrom-v1.6.0/flashrom.c:1264:25: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1262|   
# 1263|   	const struct romentry *entry = NULL;
# 1264|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1265|   		const struct flash_region *region = &entry->region;
# 1266|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def20]
flashrom-v1.6.0/flashrom.c:1270:52: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1268|   			size_t offset;
# 1269|   			for (offset = region->start; offset <= region->end; offset += page_size) {
# 1270|-> 				const size_t len = min(page_size, region->end + 1 - offset);
# 1271|   
# 1272|   				if (need_erase(have, want, len, flashctx->chip->gran, ERASED_VALUE(flashctx)))

Error: GCC_ANALYZER_WARNING (CWE-401): [#def21]
flashrom-v1.6.0/flashrom.c:1270:52: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1268|   			size_t offset;
# 1269|   			for (offset = region->start; offset <= region->end; offset += page_size) {
# 1270|-> 				const size_t len = min(page_size, region->end + 1 - offset);
# 1271|   
# 1272|   				if (need_erase(have, want, len, flashctx->chip->gran, ERASED_VALUE(flashctx)))

Error: GCC_ANALYZER_WARNING (CWE-401): [#def22]
flashrom-v1.6.0/flashrom.c:1295:9: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1293|   	}
# 1294|   
# 1295|-> 	init_progress(flashctx, stage, total);
# 1296|   }
# 1297|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def23]
flashrom-v1.6.0/flashrom.c:1295:9: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1404:12: enter_function: entry to ‘erase_by_layout’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1430:9: call_function: calling ‘setup_progress_from_layout_and_diff’ from ‘erase_by_layout’
# 1293|   	}
# 1294|   
# 1295|-> 	init_progress(flashctx, stage, total);
# 1296|   }
# 1297|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def24]
flashrom-v1.6.0/flashrom.c:1411:9: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1411:9: throw: if ‘create_erase_layout’ throws an exception...
flashrom-v1.6.0/flashrom.c:1411:9: danger: ‘curcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/29/codeFlows/0/threadFlows/0/locations/0)
# 1409|   	uint8_t* newcontents = malloc(flash_size);
# 1410|   	struct erase_layout *erase_layout;
# 1411|-> 	create_erase_layout(flashctx, &erase_layout);
# 1412|   	int ret = 0;
# 1413|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def25]
flashrom-v1.6.0/flashrom.c:1411:9: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1411:9: throw: if ‘create_erase_layout’ throws an exception...
flashrom-v1.6.0/flashrom.c:1411:9: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/30/codeFlows/0/threadFlows/0/locations/0)
# 1409|   	uint8_t* newcontents = malloc(flash_size);
# 1410|   	struct erase_layout *erase_layout;
# 1411|-> 	create_erase_layout(flashctx, &erase_layout);
# 1412|   	int ret = 0;
# 1413|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def26]
flashrom-v1.6.0/flashrom.c:1432:60: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1432:60: throw: if ‘get_layout’ throws an exception...
flashrom-v1.6.0/flashrom.c:1432:60: danger: ‘curcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/31/codeFlows/0/threadFlows/0/locations/0)
# 1430|   	setup_progress_from_layout_and_diff(flashctx, curcontents, newcontents, FLASHROM_PROGRESS_ERASE);
# 1431|   
# 1432|-> 	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1433|   	const struct romentry *entry = NULL;
# 1434|   	while ((entry = layout_next_included(flash_layout, entry))) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def27]
flashrom-v1.6.0/flashrom.c:1432:60: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1432:60: throw: if ‘get_layout’ throws an exception...
flashrom-v1.6.0/flashrom.c:1432:60: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/32/codeFlows/0/threadFlows/0/locations/0)
# 1430|   	setup_progress_from_layout_and_diff(flashctx, curcontents, newcontents, FLASHROM_PROGRESS_ERASE);
# 1431|   
# 1432|-> 	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1433|   	const struct romentry *entry = NULL;
# 1434|   	while ((entry = layout_next_included(flash_layout, entry))) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def28]
flashrom-v1.6.0/flashrom.c:1434:25: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1434:25: throw: if ‘layout_next_included’ throws an exception...
flashrom-v1.6.0/flashrom.c:1434:25: danger: ‘curcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/33/codeFlows/0/threadFlows/0/locations/0)
# 1432|   	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1433|   	const struct romentry *entry = NULL;
# 1434|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1435|   		ret = erase_write(flashctx, entry->region.start, entry->region.end, curcontents, newcontents, erase_layout, &all_skipped);
# 1436|   		if (ret) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def29]
flashrom-v1.6.0/flashrom.c:1434:25: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1434:25: throw: if ‘layout_next_included’ throws an exception...
flashrom-v1.6.0/flashrom.c:1434:25: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/34/codeFlows/0/threadFlows/0/locations/0)
# 1432|   	const struct flashrom_layout *const flash_layout = get_layout(flashctx);
# 1433|   	const struct romentry *entry = NULL;
# 1434|-> 	while ((entry = layout_next_included(flash_layout, entry))) {
# 1435|   		ret = erase_write(flashctx, entry->region.start, entry->region.end, curcontents, newcontents, erase_layout, &all_skipped);
# 1436|   		if (ret) {

Error: GCC_ANALYZER_WARNING (CWE-401): [#def30]
flashrom-v1.6.0/flashrom.c:1435:23: warning[-Wanalyzer-malloc-leak]: leak of ‘curcontents’
flashrom-v1.6.0/flashrom.c:1408:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1434:16: branch_true: following ‘true’ branch...
flashrom-v1.6.0/flashrom.c:1435:23: branch_true: ...to here
flashrom-v1.6.0/flashrom.c:1435:23: throw: if ‘erase_write’ throws an exception...
flashrom-v1.6.0/flashrom.c:1435:23: danger: ‘curcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/35/codeFlows/0/threadFlows/0/locations/0)
# 1433|   	const struct romentry *entry = NULL;
# 1434|   	while ((entry = layout_next_included(flash_layout, entry))) {
# 1435|-> 		ret = erase_write(flashctx, entry->region.start, entry->region.end, curcontents, newcontents, erase_layout, &all_skipped);
# 1436|   		if (ret) {
# 1437|   			ret = 1;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def31]
flashrom-v1.6.0/flashrom.c:1435:23: warning[-Wanalyzer-malloc-leak]: leak of ‘newcontents’
flashrom-v1.6.0/flashrom.c:1409:32: acquire_memory: allocated here
flashrom-v1.6.0/flashrom.c:1415:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1421:13: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1421:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/flashrom.c:1426:30: branch_false: ...to here
flashrom-v1.6.0/flashrom.c:1434:16: branch_true: following ‘true’ branch...
flashrom-v1.6.0/flashrom.c:1435:23: branch_true: ...to here
flashrom-v1.6.0/flashrom.c:1435:23: throw: if ‘erase_write’ throws an exception...
flashrom-v1.6.0/flashrom.c:1435:23: danger: ‘newcontents’ leaks here; was allocated at [(1)](sarif:/runs/0/results/36/codeFlows/0/threadFlows/0/locations/0)
# 1433|   	const struct romentry *entry = NULL;
# 1434|   	while ((entry = layout_next_included(flash_layout, entry))) {
# 1435|-> 		ret = erase_write(flashctx, entry->region.start, entry->region.end, curcontents, newcontents, erase_layout, &all_skipped);
# 1436|   		if (ret) {
# 1437|   			ret = 1;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def32]
flashrom-v1.6.0/libflashrom.c:390:37: warning[-Wanalyzer-malloc-leak]: leak of ‘matched_names’
flashrom-v1.6.0/libflashrom.c:383:38: acquire_memory: allocated here
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:387:24: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:388:50: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:389:64: branch_true: following ‘true’ branch (when ‘all_matched_count == 0’)...
flashrom-v1.6.0/libflashrom.c:390:37: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:390:37: throw: if ‘probe_flash’ throws an exception...
flashrom-v1.6.0/libflashrom.c:390:37: danger: ‘matched_names’ leaks here; was allocated at [(1)](sarif:/runs/0/results/2/codeFlows/0/threadFlows/0/locations/0)
#  388|   			struct flashrom_flashctx second_flashctx = { 0, }; // used for second and more matches
#  389|   			struct flashctx *context_for_probing = (all_matched_count > 0) ? &second_flashctx : flashctx;
#  390|-> 			startchip = probe_flash(&registered_masters[i], startchip, context_for_probing, 0, chip_name);
#  391|   
#  392|   			if (startchip < 0)

Error: CPPCHECK_WARNING (CWE-476): [#def33]
flashrom-v1.6.0/libflashrom.c:395: warning[nullPointerOutOfMemory]: If memory allocation fails, then there is a possible null pointer dereference: matched_names
#  393|   				break;
#  394|   
#  395|-> 			matched_names[all_matched_count] = context_for_probing->chip->name;
#  396|   			all_matched_count++;
#  397|   			startchip++;

Error: GCC_ANALYZER_WARNING (CWE-476): [#def34]
flashrom-v1.6.0/libflashrom.c:395:25: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘matched_names’
flashrom-v1.6.0/libflashrom.c:383:38: acquire_memory: this call could return NULL
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:387:24: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:388:50: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:389:64: branch_true: following ‘true’ branch (when ‘all_matched_count == 0’)...
flashrom-v1.6.0/libflashrom.c:390:37: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:395:25: danger: ‘matched_names + (long unsigned int)all_matched_count * 8’ could be NULL: unchecked value from [(1)](sarif:/runs/0/results/4/codeFlows/0/threadFlows/0/locations/0)
#  393|   				break;
#  394|   
#  395|-> 			matched_names[all_matched_count] = context_for_probing->chip->name;
#  396|   			all_matched_count++;
#  397|   			startchip++;

Error: GCC_ANALYZER_WARNING (CWE-401): [#def35]
flashrom-v1.6.0/libflashrom.c:401:33: warning[-Wanalyzer-malloc-leak]: leak of ‘matched_names’
flashrom-v1.6.0/libflashrom.c:383:38: acquire_memory: allocated here
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:385:25: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:387:24: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:388:50: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:389:64: branch_true: following ‘true’ branch (when ‘all_matched_count == 0’)...
flashrom-v1.6.0/libflashrom.c:390:37: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:399:28: branch_false: following ‘false’ branch (when ‘all_matched_count == 1’)...
flashrom-v1.6.0/libflashrom.c:414:1: branch_false: ...to here
flashrom-v1.6.0/libflashrom.c:387:24: branch_true: following ‘true’ branch...
flashrom-v1.6.0/libflashrom.c:388:50: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:389:64: branch_false: following ‘false’ branch (when ‘all_matched_count != 0’)...
flashrom-v1.6.0/libflashrom.c:389:64: branch_false: ...to here
flashrom-v1.6.0/libflashrom.c:392:28: branch_false: following ‘false’ branch...
flashrom-v1.6.0/libflashrom.c:395:60: branch_false: ...to here
flashrom-v1.6.0/libflashrom.c:399:28: branch_true: following ‘true’ branch (when ‘all_matched_count != 1’)...
flashrom-v1.6.0/libflashrom.c:401:33: branch_true: ...to here
flashrom-v1.6.0/libflashrom.c:401:33: throw: if ‘flashrom_layout_release’ throws an exception...
flashrom-v1.6.0/libflashrom.c:401:33: danger: ‘matched_names’ leaks here; was allocated at [(1)](sarif:/runs/0/results/5/codeFlows/0/threadFlows/0/locations/0)
#  399|   			if (all_matched_count > 1) {
#  400|   				/* It's used for the second and subsequent probing. */
#  401|-> 				flashrom_layout_release(second_flashctx.default_layout);
#  402|   				free(second_flashctx.chip);
#  403|   			}

Error: GCC_ANALYZER_WARNING (CWE-476): [#def36]
flashrom-v1.6.0/libflashrom.c:407:9: warning[-Wanalyzer-possible-null-dereference]: dereference of possibly-NULL ‘matched_names’
flashrom-v1.6.0/libflashrom.c:383:38: acquire_memory: this call could return NULL
flashrom-v1.6.0/libflashrom.c:407:9: danger: ‘matched_names + (long unsigned int)all_matched_count * 8’ could be NULL: unchecked value from [(1)](sarif:/runs/0/results/6/codeFlows/0/threadFlows/0/locations/0)
#  405|   	}
#  406|   
#  407|-> 	matched_names[all_matched_count] = NULL;
#  408|   	matched_names = realloc(matched_names, (all_matched_count + 1) * sizeof(char*));
#  409|   	*all_matched_names = matched_names;

Error: CPPCHECK_WARNING (CWE-401): [#def37]
flashrom-v1.6.0/libflashrom.c:408: error[memleakOnRealloc]: Common realloc mistake: 'matched_names' nulled but not freed upon failure
#  406|   
#  407|   	matched_names[all_matched_count] = NULL;
#  408|-> 	matched_names = realloc(matched_names, (all_matched_count + 1) * sizeof(char*));
#  409|   	*all_matched_names = matched_names;
#  410|   

Error: GCC_ANALYZER_WARNING (CWE-401): [#def38]
flashrom-v1.6.0/libflashrom.c:413:16: warning[-Wanalyzer-malloc-leak]: leak of ‘matched_names’
flashrom-v1.6.0/libflashrom.c:383:38: acquire_memory: allocated here
flashrom-v1.6.0/libflashrom.c:413:16: danger: ‘matched_names’ leaks here; was allocated at [(1)](sarif:/runs/0/results/7/codeFlows/0/threadFlows/0/locations/0)
#  411|   	int ret = (startchip == ERROR_FLASHROM_PROBE_INTERNAL_ERROR) ? -1 : (int) all_matched_count;
#  412|   
#  413|-> 	return ret;
#  414|   }
#  415|   

Error: GCC_ANALYZER_WARNING (CWE-775): [#def39]
flashrom-v1.6.0/linux_mtd.c:62:22: warning[-Wanalyzer-file-leak]: leak of FILE ‘fopen(&path, "r")’
flashrom-v1.6.0/linux_mtd.c:455:12: enter_function: entry to ‘linux_mtd_setup’
flashrom-v1.6.0/linux_mtd.c:461:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/linux_mtd.c:464:14: branch_false: ...to here
flashrom-v1.6.0/linux_mtd.c:465:13: call_function: calling ‘read_sysfs_string’ from ‘linux_mtd_setup’
#   60|   
#   61|   	clearerr(fp);
#   62|-> 	bytes_read = fread(buf, 1, (size_t)len, fp);
#   63|   	if (!feof(fp) && ferror(fp)) {
#   64|   		msg_perr("Error occurred when reading %s\n", path);

Error: GCC_ANALYZER_WARNING (CWE-401): [#def40]
flashrom-v1.6.0/linux_mtd.c:62:22: warning[-Wanalyzer-malloc-leak]: leak of ‘fopen(&path, "r")’
flashrom-v1.6.0/linux_mtd.c:455:12: enter_function: entry to ‘linux_mtd_setup’
flashrom-v1.6.0/linux_mtd.c:461:12: branch_false: following ‘false’ branch...
flashrom-v1.6.0/linux_mtd.c:464:14: branch_false: ...to here
flashrom-v1.6.0/linux_mtd.c:465:13: call_function: calling ‘read_sysfs_string’ from ‘linux_mtd_setup’
#   60|   
#   61|   	clearerr(fp);
#   62|-> 	bytes_read = fread(buf, 1, (size_t)len, fp);
#   63|   	if (!feof(fp) && ferror(fp)) {
#   64|   		msg_perr("Error occurred when reading %s\n", path);

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-64.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-nameflashrom-1.4.0-3.fc43
diffbase-store-results-to/tmp/tmpcgj3gp49/flashrom-1.4.0-3.fc43.tar.xz
diffbase-time-created2026-01-08 16:06:19
diffbase-time-finished2026-01-08 16:08:11
diffbase-toolcsmock
diffbase-tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpcgj3gp49/flashrom-1.4.0-3.fc43.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpcgj3gp49/flashrom-1.4.0-3.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-64.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-nameflashrom-1.6.0-2.fc44
store-results-to/tmp/tmpu3ov4bbv/flashrom-1.6.0-2.fc44.tar.xz
time-created2026-01-08 16:08:42
time-finished2026-01-08 16:10:10
titleNewly introduced findings
toolcsmock
tool-args'/usr/bin/csmock' '-r' 'fedora-rawhide-x86_64' '-t' 'gcc,cppcheck,clippy,shellcheck,unicontrol' '-o' '/tmp/tmpu3ov4bbv/flashrom-1.6.0-2.fc44.tar.xz' '--gcc-analyze' '--unicontrol-notests' '--unicontrol-bidi-only' '--install' 'pam' '--gcc-analyzer-bin=/usr/bin/gcc' '/tmp/tmpu3ov4bbv/flashrom-1.6.0-2.fc44.src.rpm'
tool-versioncsmock-3.8.3.20251215.161544.g62de9a5-1.el9