[coreboot] New Defects reported by Coverity Scan for coreboot

scan-admin at coverity.com scan-admin at coverity.com
Fri Aug 19 13:29:03 CEST 2016


Hi,

Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.

53 new defect(s) introduced to coreboot found with Coverity Scan.
5 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 20 of 53 defect(s)


** CID 1361695:  Null pointer dereferences  (NULL_RETURNS)
/src/northbridge/intel/pineview/early_init.c: 45 in early_graphics_setup()


________________________________________________________________________________________________________
*** CID 1361695:  Null pointer dereferences  (NULL_RETURNS)
/src/northbridge/intel/pineview/early_init.c: 45 in early_graphics_setup()
39     {
40     	u8 reg8;
41     	u16 reg16;
42     	u32 reg32;
43     
44     	const struct device *d0f0 = dev_find_slot(0, PCI_DEVFN(0,0));
>>>     CID 1361695:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a null pointer "d0f0".
45     	const struct northbridge_intel_pineview_config *config = d0f0->chip_info;
46     
47     	pci_write_config8(D0F0, DEVEN, BOARD_DEVEN);
48     	pci_write_config16(D0F0, GGC, 0x130); /* 1MB GTT 8MB UMA */
49     
50     	printk(BIOS_SPEW, "Set GFX clocks...");

** CID 1361275:    (TAINTED_SCALAR)
/util/cbfstool/ifwitool.c: 838 in parse_subpart_dir()


________________________________________________________________________________________________________
*** CID 1361275:    (TAINTED_SCALAR)
/util/cbfstool/ifwitool.c: 831 in parse_subpart_dir()
825     	memcpy(hdr.name, data + offset, sizeof(hdr.name));
826     	offset += sizeof(hdr.name);
827     
828     	validate_subpart_dir_without_checksum((struct subpart_dir *)&hdr, name);
829     
830     	assert(size > subpart_dir_size(&hdr));
>>>     CID 1361275:    (TAINTED_SCALAR)
>>>     Passing tainted variable "subpart_dir_size(&hdr)" to a tainted sink.
831     	alloc_buffer(subpart_dir_buf, subpart_dir_size(&hdr), "Subpart Dir");
832     	memcpy(buffer_get(subpart_dir_buf), &hdr, SUBPART_DIR_HEADER_SIZE);
833     
834     	/* Read Subpart Dir entries. */
835     	struct subpart_dir *subpart_dir = buffer_get(subpart_dir_buf);
836     	struct subpart_dir_entry *e = &subpart_dir->e[0];
/util/cbfstool/ifwitool.c: 838 in parse_subpart_dir()
832     	memcpy(buffer_get(subpart_dir_buf), &hdr, SUBPART_DIR_HEADER_SIZE);
833     
834     	/* Read Subpart Dir entries. */
835     	struct subpart_dir *subpart_dir = buffer_get(subpart_dir_buf);
836     	struct subpart_dir_entry *e = &subpart_dir->e[0];
837     	uint32_t i;
>>>     CID 1361275:    (TAINTED_SCALAR)
>>>     Using tainted variable "hdr.num_entries" as a loop boundary.
838     	for (i = 0; i < hdr.num_entries; i++) {
839     		memcpy(e[i].name, data + offset, sizeof(e[i].name));
840     		offset += sizeof(e[i].name);
841     		offset = read_member(data, offset, sizeof(e[i].offset),
842     				     &e[i].offset);
843     		offset = read_member(data, offset, sizeof(e[i].length),

** CID 1361274:  Insecure data handling  (TAINTED_SCALAR)


________________________________________________________________________________________________________
*** CID 1361274:  Insecure data handling  (TAINTED_SCALAR)
/util/cbfstool/ifwitool.c: 717 in alloc_bpdt_buffer()
711     {
712     	struct bpdt_header bpdt_header;
713     	assert((offset + BPDT_HEADER_SIZE) < size);
714     	bpdt_read_header((uint8_t *)data + offset, &bpdt_header, name);
715     
716     	/* Buffer to read BPDT header and entries. */
>>>     CID 1361274:  Insecure data handling  (TAINTED_SCALAR)
>>>     Passing tainted variable "get_bpdt_size(&bpdt_header)" to a tainted sink.
717     	alloc_buffer(b, get_bpdt_size(&bpdt_header), name);
718     
719     	struct bpdt *bpdt = buffer_get(b);
720     	memcpy(&bpdt->h, &bpdt_header, BPDT_HEADER_SIZE);
721     
722     	/*

** CID 1361253:  Memory - illegal accesses  (BUFFER_SIZE_WARNING)
/util/cbfstool/ifwitool.c: 1300 in init_subpart_dir_entry()


________________________________________________________________________________________________________
*** CID 1361253:  Memory - illegal accesses  (BUFFER_SIZE_WARNING)
/util/cbfstool/ifwitool.c: 1300 in init_subpart_dir_entry()
1294     static size_t init_subpart_dir_entry(struct subpart_dir_entry *e,
1295     				     struct buffer *b, size_t offset)
1296     {
1297     	memset(e, 0, sizeof(*e));
1298     
1299     	assert(strlen(b->name) <= sizeof(e->name));
>>>     CID 1361253:  Memory - illegal accesses  (BUFFER_SIZE_WARNING)
>>>     Calling strncpy with a maximum size argument of 12 bytes on destination array "e->name" of size 12 bytes might leave the destination string unterminated.
1300     	strncpy((char *)e->name, (char *)b->name, sizeof(e->name));
1301     	e->offset = offset;
1302     	e->length = buffer_size(b);
1303     
1304     	return (offset + buffer_size(b));
1305     }

** CID 1353793:  Resource leaks  (RESOURCE_LEAK)
/util/nvidia/cbootimage/src/data_layout.c: 1096 in resign_bl()


________________________________________________________________________________________________________
*** CID 1353793:  Resource leaks  (RESOURCE_LEAK)
/util/nvidia/cbootimage/src/data_layout.c: 1096 in resign_bl()
1090     
1091     	if (read_from_image(context->input_image_filename,
1092     				offset, bl_length,
1093     				&image, &image_actual_size, file_type_bin)) {
1094     		printf("Error reading image file %s.\n",
1095     				context->input_image_filename);
>>>     CID 1353793:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "image" going out of scope leaks the storage it points to.
1096     		return -ENOMEM;
1097     	}
1098     
1099     	pages_in_image = ICEIL(image_actual_size, page_size);
1100     
1101     	/* Create a local copy of the bl */

** CID 1353781:  Control flow issues  (NO_EFFECT)
/util/nvidia/cbootimage/src/cbootimage.c: 242 in main()


________________________________________________________________________________________________________
*** CID 1353781:  Control flow issues  (NO_EFFECT)
/util/nvidia/cbootimage/src/cbootimage.c: 242 in main()
236     			context.input_image_filename);
237     			goto fail;
238     		}
239     
240     		/* Get BCT_SIZE from input image file  */
241     		bct_size = get_bct_size_from_image(&context);
>>>     CID 1353781:  Control flow issues  (NO_EFFECT)
>>>     This less-than-zero comparison of an unsigned value is never true. "bct_size < 0U".
242     		if (bct_size < 0) {
243     			printf("Error: Invalid input image file %s\n",
244     			context.input_image_filename);
245     			goto fail;
246     		}
247     

** CID 1353171:  Null pointer dereferences  (NULL_RETURNS)
/src/soc/intel/skylake/romstage/romstage.c: 72 in soc_memory_init_params()


________________________________________________________________________________________________________
*** CID 1353171:  Null pointer dereferences  (NULL_RETURNS)
/src/soc/intel/skylake/romstage/romstage.c: 72 in soc_memory_init_params()
66     {
67     	const struct device *dev;
68     	const struct soc_intel_skylake_config *config;
69     
70     	/* Set the parameters for MemoryInit */
71     	dev = dev_find_slot(0, PCI_DEVFN(PCH_DEV_SLOT_LPC, 0));
>>>     CID 1353171:  Null pointer dereferences  (NULL_RETURNS)
>>>     Dereferencing a null pointer "dev".
72     	config = dev->chip_info;
73     
74     	/*
75     	 * Set IGD stolen size to 64MB.  The FBC hardware for skylake does not
76     	 * have access to the bios_reserved range so it always assumes 8MB is
77     	 * used and so the kernel will avoid the last 8MB of the stolen window.

** CID 1353028:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 284 in integrate_psp_firmwares()


________________________________________________________________________________________________________
*** CID 1353028:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 284 in integrate_psp_firmwares()
278     			pspdir[4+4*i+2] = 1;
279     			pspdir[4+4*i+3] = 0;
280     		} else if (fw_table[i].filename != NULL) {
281     			pspdir[4+4*i+0] = fw_table[i].type;
282     
283     			fd = open (fw_table[i].filename, O_RDONLY);
>>>     CID 1353028:  Error handling issues  (NEGATIVE_RETURNS)
>>>     "fd" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.]
284     			fstat(fd, &fd_stat);
285     			pspdir[4+4*i+1] = fd_stat.st_size;
286     
287     			pspdir[4+4*i+2] = pos + ROM_BASE_ADDRESS;
288     			pspdir[4+4*i+3] = 0;
289     

** CID 1353027:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 239 in integrate_firmwares()


________________________________________________________________________________________________________
*** CID 1353027:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 239 in integrate_firmwares()
233     	struct stat fd_stat;
234     	int i;
235     
236     	for (i = 0; fw_table[i].type != AMD_FW_INVALID; i ++) {
237     		if (fw_table[i].filename != NULL) {
238     			fd = open (fw_table[i].filename, O_RDONLY);
>>>     CID 1353027:  Error handling issues  (NEGATIVE_RETURNS)
>>>     "fd" is passed to a parameter that cannot be negative. [Note: The source code implementation of the function has been overridden by a builtin model.]
239     			fstat(fd, &fd_stat);
240     
241     			switch (fw_table[i].type) {
242     			case AMD_FW_IMC:
243     				pos = ALIGN(pos, 0x10000);
244     				romsig[1] = pos + ROM_BASE_ADDRESS;

** CID 1353022:  Error handling issues  (CHECKED_RETURN)
/util/nvidia/cbootimage/src/cbootimage.c: 297 in main()


________________________________________________________________________________________________________
*** CID 1353022:  Error handling issues  (CHECKED_RETURN)
/util/nvidia/cbootimage/src/cbootimage.c: 297 in main()
291     		begin_update(&context);
292     		/* Signing the bct. */
293     		e = sign_bct(&context, context.bct);
294     		if (e != 0) 
295     			printf("Signing BCT failed, error: %d.\n", e);
296     
>>>     CID 1353022:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "fwrite" without checking return value (as is done elsewhere 34 out of 42 times).
297     		fwrite(context.bct, 1, context.bct_size,
298     			context.raw_file);
299     		printf("New BCT file %s has been successfully generated!\n",
300     			context.output_image_filename);
301     		goto fail;
302     	}

** CID 1353021:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 290 in integrate_psp_firmwares()


________________________________________________________________________________________________________
*** CID 1353021:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 290 in integrate_psp_firmwares()
284     			fstat(fd, &fd_stat);
285     			pspdir[4+4*i+1] = fd_stat.st_size;
286     
287     			pspdir[4+4*i+2] = pos + ROM_BASE_ADDRESS;
288     			pspdir[4+4*i+3] = 0;
289     
>>>     CID 1353021:  Error handling issues  (CHECKED_RETURN)
>>>     "read(int, void *, size_t)" returns the number of bytes read, but it is ignored.
290     			read (fd, base+pos, fd_stat.st_size);
291     
292     			pos += fd_stat.st_size;
293     			pos = ALIGN(pos, 0x100);
294     			close (fd);
295     		} else {

** CID 1353020:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 284 in integrate_psp_firmwares()


________________________________________________________________________________________________________
*** CID 1353020:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 284 in integrate_psp_firmwares()
278     			pspdir[4+4*i+2] = 1;
279     			pspdir[4+4*i+3] = 0;
280     		} else if (fw_table[i].filename != NULL) {
281     			pspdir[4+4*i+0] = fw_table[i].type;
282     
283     			fd = open (fw_table[i].filename, O_RDONLY);
>>>     CID 1353020:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "fstat(fd, &fd_stat)" without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
284     			fstat(fd, &fd_stat);
285     			pspdir[4+4*i+1] = fd_stat.st_size;
286     
287     			pspdir[4+4*i+2] = pos + ROM_BASE_ADDRESS;
288     			pspdir[4+4*i+3] = 0;
289     

** CID 1353019:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 257 in integrate_firmwares()


________________________________________________________________________________________________________
*** CID 1353019:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 257 in integrate_firmwares()
251     				break;
252     			default:
253     				/* Error */
254     				break;
255     			}
256     
>>>     CID 1353019:  Error handling issues  (CHECKED_RETURN)
>>>     "read(int, void *, size_t)" returns the number of bytes read, but it is ignored.
257     			read (fd, base+pos, fd_stat.st_size);
258     
259     			pos += fd_stat.st_size;
260     			pos = ALIGN(pos, 0x100);
261     			close (fd);
262     		}

** CID 1353018:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 239 in integrate_firmwares()


________________________________________________________________________________________________________
*** CID 1353018:  Error handling issues  (CHECKED_RETURN)
/util/amdfwtool/amdfwtool.c: 239 in integrate_firmwares()
233     	struct stat fd_stat;
234     	int i;
235     
236     	for (i = 0; fw_table[i].type != AMD_FW_INVALID; i ++) {
237     		if (fw_table[i].filename != NULL) {
238     			fd = open (fw_table[i].filename, O_RDONLY);
>>>     CID 1353018:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "fstat(fd, &fd_stat)" without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
239     			fstat(fd, &fd_stat);
240     
241     			switch (fw_table[i].type) {
242     			case AMD_FW_IMC:
243     				pos = ALIGN(pos, 0x10000);
244     				romsig[1] = pos + ROM_BASE_ADDRESS;

** CID 1347358:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 586 in main()


________________________________________________________________________________________________________
*** CID 1347358:  Error handling issues  (NEGATIVE_RETURNS)
/util/amdfwtool/amdfwtool.c: 586 in main()
580     		current = integrate_psp_firmwares(rom, current, psp2dir, amd_psp2_fw_table);
581     #endif
582     	}
583     #endif
584     
585     	targetfd = open(output, O_RDWR | O_CREAT | O_TRUNC, 0666);
>>>     CID 1347358:  Error handling issues  (NEGATIVE_RETURNS)
>>>     "targetfd" is passed to a parameter that cannot be negative.
586     	write(targetfd, amd_romsig, current - AMD_ROMSIG_OFFSET);
587     	close(targetfd);
588     	free(rom);
589     
590     	return 0;

** CID 1347335:    (UNINIT)
/util/cbfstool/elfheaders.c: 1002 in write_phdrs()
/util/cbfstool/elfheaders.c: 999 in write_phdrs()
/util/cbfstool/elfheaders.c: 1001 in write_phdrs()
/util/cbfstool/elfheaders.c: 1003 in write_phdrs()


________________________________________________________________________________________________________
*** CID 1347335:    (UNINIT)
/util/cbfstool/elfheaders.c: 1002 in write_phdrs()
996     			 * (sh_size == file size). This is standard in that
997     			 * an ELF section doesn't have a file size component. */
998     			if (sec->shdr.sh_flags & SHF_EXECINSTR)
999     				phdr.p_flags |= PF_X | PF_R;
1000     			if (sec->shdr.sh_flags & SHF_WRITE)
1001     				phdr.p_flags |= PF_W;
>>>     CID 1347335:    (UNINIT)
>>>     Using uninitialized value "phdr.p_filesz".
1002     			phdr.p_filesz += buffer_size(&sec->content);
1003     			phdr.p_memsz += sec->shdr.sh_size;
1004     		}
1005     	}
1006     
1007     	/* Write out the last phdr. */
/util/cbfstool/elfheaders.c: 999 in write_phdrs()
993     		} else {
994     			/* Accumulate file size and memsize. The assumption
995     			 * is that each section is either NOBITS or full
996     			 * (sh_size == file size). This is standard in that
997     			 * an ELF section doesn't have a file size component. */
998     			if (sec->shdr.sh_flags & SHF_EXECINSTR)
>>>     CID 1347335:    (UNINIT)
>>>     Using uninitialized value "phdr.p_flags".
999     				phdr.p_flags |= PF_X | PF_R;
1000     			if (sec->shdr.sh_flags & SHF_WRITE)
1001     				phdr.p_flags |= PF_W;
1002     			phdr.p_filesz += buffer_size(&sec->content);
1003     			phdr.p_memsz += sec->shdr.sh_size;
1004     		}
/util/cbfstool/elfheaders.c: 1001 in write_phdrs()
995     			 * is that each section is either NOBITS or full
996     			 * (sh_size == file size). This is standard in that
997     			 * an ELF section doesn't have a file size component. */
998     			if (sec->shdr.sh_flags & SHF_EXECINSTR)
999     				phdr.p_flags |= PF_X | PF_R;
1000     			if (sec->shdr.sh_flags & SHF_WRITE)
>>>     CID 1347335:    (UNINIT)
>>>     Using uninitialized value "phdr.p_flags".
1001     				phdr.p_flags |= PF_W;
1002     			phdr.p_filesz += buffer_size(&sec->content);
1003     			phdr.p_memsz += sec->shdr.sh_size;
1004     		}
1005     	}
1006     
/util/cbfstool/elfheaders.c: 1003 in write_phdrs()
997     			 * an ELF section doesn't have a file size component. */
998     			if (sec->shdr.sh_flags & SHF_EXECINSTR)
999     				phdr.p_flags |= PF_X | PF_R;
1000     			if (sec->shdr.sh_flags & SHF_WRITE)
1001     				phdr.p_flags |= PF_W;
1002     			phdr.p_filesz += buffer_size(&sec->content);
>>>     CID 1347335:    (UNINIT)
>>>     Using uninitialized value "phdr.p_memsz".
1003     			phdr.p_memsz += sec->shdr.sh_size;
1004     		}
1005     	}
1006     
1007     	/* Write out the last phdr. */
1008     	if (num_needs_write != num_written) {

** CID 1347333:  Memory - illegal accesses  (UNINIT)
/util/amdfwtool/amdfwtool.c: 585 in main()


________________________________________________________________________________________________________
*** CID 1347333:  Memory - illegal accesses  (UNINIT)
/util/amdfwtool/amdfwtool.c: 585 in main()
579     #else
580     		current = integrate_psp_firmwares(rom, current, psp2dir, amd_psp2_fw_table);
581     #endif
582     	}
583     #endif
584     
>>>     CID 1347333:  Memory - illegal accesses  (UNINIT)
>>>     Using uninitialized value "output" when calling "open".
585     	targetfd = open(output, O_RDWR | O_CREAT | O_TRUNC, 0666);
586     	write(targetfd, amd_romsig, current - AMD_ROMSIG_OFFSET);
587     	close(targetfd);
588     	free(rom);
589     
590     	return 0;

** CID 1325840:  Memory - illegal accesses  (OVERRUN)
/util/cbfstool/cbfs_image.c: 1406 in cbfs_print_entry_info()


________________________________________________________________________________________________________
*** CID 1325840:  Memory - illegal accesses  (OVERRUN)
/util/cbfstool/cbfs_image.c: 1406 in cbfs_print_entry_info()
1400     	while ((hash = cbfs_file_get_next_hash(entry, hash)) != NULL) {
1401     		unsigned int hash_type = ntohl(hash->hash_type);
1402     		if (hash_type > CBFS_NUM_SUPPORTED_HASHES) {
1403     			fprintf(fp, "invalid hash type %d\n", hash_type);
1404     			break;
1405     		}
>>>     CID 1325840:  Memory - illegal accesses  (OVERRUN)
>>>     Overrunning array "widths_cbfs_hash" of 4 8-byte elements at element index 4 (byte offset 32) using index "hash_type" (which evaluates to 4).
1406     		size_t hash_len = widths_cbfs_hash[hash_type];
1407     		char *hash_str = bintohex(hash->hash_data, hash_len);
1408     		uint8_t local_hash[hash_len];
1409     		if (vb2_digest_buffer(CBFS_SUBHEADER(entry),
1410     			ntohl(entry->len), hash_type, local_hash,
1411     			hash_len) != VB2_SUCCESS) {

** CID 1325836:  Resource leaks  (RESOURCE_LEAK)
/util/cbfstool/cbfs_image.c: 1413 in cbfs_print_entry_info()


________________________________________________________________________________________________________
*** CID 1325836:  Resource leaks  (RESOURCE_LEAK)
/util/cbfstool/cbfs_image.c: 1413 in cbfs_print_entry_info()
1407     		char *hash_str = bintohex(hash->hash_data, hash_len);
1408     		uint8_t local_hash[hash_len];
1409     		if (vb2_digest_buffer(CBFS_SUBHEADER(entry),
1410     			ntohl(entry->len), hash_type, local_hash,
1411     			hash_len) != VB2_SUCCESS) {
1412     			fprintf(fp, "failed to hash '%s'\n", name);
>>>     CID 1325836:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "hash_str" going out of scope leaks the storage it points to.
1413     			break;
1414     		}
1415     		int valid = memcmp(local_hash, hash->hash_data, hash_len) == 0;
1416     		const char *valid_str = valid ? "valid" : "invalid";
1417     
1418     		fprintf(fp, "    hash %s:%s %s\n",

** CID 1323515:  Error handling issues  (CHECKED_RETURN)
/util/broadcom/secimage/sbi.c: 112 in CreateSecureBootImage()


________________________________________________________________________________________________________
*** CID 1323515:  Error handling issues  (CHECKED_RETURN)
/util/broadcom/secimage/sbi.c: 112 in CreateSecureBootImage()
106     		} else {
107     			return SBIUsage();
108     		}
109     		--ac, ++av;
110     	}
111     
>>>     CID 1323515:  Error handling issues  (CHECKED_RETURN)
>>>     Calling "stat(bl, &file_stat)" without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
112     	stat(bl, &file_stat);
113     	filesize = file_stat.st_size + MIN_SIZE;
114     	buf = calloc(sizeof(uint8_t), filesize);
115     
116     	if (buf == NULL) {
117     		puts("Memory allocation error");


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbLuoVetFLSjdonCi1EjfHRqWGQvojmmkYaBE-2BPJiTQvQ-3D-3D_q4bX76XMySz3BXBlWr5fXXJ4cvAsgEXEqC7dBPM7O5bfwJVC7R31vD07EuEFSVO8BkAub7AwrexRdB4tS1yhiqOYRHoX9-2FklJS7hNHb6RwFc7h7P5eINioNg1M716rRtVlBJ9L1IeM6YnjjOWJ-2B6ML5dZude8hCZ3anh0F2ne8NnARrvyqwGs-2B79BtbYgTyJie8dq6ynR6buslLHMsl-2B0kU9LvCHtZwKIWGElULMPKE-3D

To manage Coverity Scan email notifications for "coreboot at coreboot.org", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4e-2BpBzwOa5gzBZa9dWpDbzfofODnVj1enK2UkK0-2BgCCqyeem8IVKvTxSaOFkteZFcnohwvb2rnYNjswGryEWCURnUk6WHU42sbOmtOjD-2Bx5c-3D_q4bX76XMySz3BXBlWr5fXXJ4cvAsgEXEqC7dBPM7O5bfwJVC7R31vD07EuEFSVO8BVPMc3VJQbhoVTGIoO64bV-2FtVU-2Bdl0fMXxhqkoufYCJZVJhGs0FjCoQ2TIwdFUtOQxYKMb1Pu1SHJu4Gmf0e67y-2FwpSBC-2F1GUc2hAte5XlpQGx4kMRG7FI8JtXKy-2Ba9bgg7EqCWGiGpJQ4-2Bw1-2F49h-2BtB-2FkeR241iAFH-2Baxc-2BaRw-3D




More information about the coreboot mailing list