util/intelmetool: Check for NULL return from pci_lookup_name
pci_lookup_name might return NULL from using format_name internally which could cause a crash when trying to print that value. We check for NULL and print a more appropriate value in that case. Change-Id: I499f0b5e1681f3926df0d8a325aab2c666ebd632 Signed-off-by: Youness Alaoui <youness.alaoui@puri.sm> Reviewed-on: https://review.coreboot.org/19089 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
		
				
					committed by
					
						
						Nico Huber
					
				
			
			
				
	
			
			
			
						parent
						
							cb7d6a19bb
						
					
				
				
					commit
					b85ddc787e
				
			@@ -119,6 +119,8 @@ static int pci_platform_scan() {
 | 
				
			|||||||
		pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_SIZES | PCI_FILL_CLASS);
 | 
							pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_SIZES | PCI_FILL_CLASS);
 | 
				
			||||||
		name = pci_lookup_name(pacc, namebuf, sizeof(namebuf),
 | 
							name = pci_lookup_name(pacc, namebuf, sizeof(namebuf),
 | 
				
			||||||
			PCI_LOOKUP_DEVICE, dev->vendor_id, dev->device_id);
 | 
								PCI_LOOKUP_DEVICE, dev->vendor_id, dev->device_id);
 | 
				
			||||||
 | 
							if (name == NULL)
 | 
				
			||||||
 | 
								name = "<unknown>";
 | 
				
			||||||
		if (dev->vendor_id == 0x8086) {
 | 
							if (dev->vendor_id == 0x8086) {
 | 
				
			||||||
			if (PCI_DEV_HAS_ME_DISABLE(dev->device_id)) {
 | 
								if (PCI_DEV_HAS_ME_DISABLE(dev->device_id)) {
 | 
				
			||||||
				printf(CGRN "Good news, you have a `%s` so ME is present but can be disabled, continuing...\n\n" RESET, name);
 | 
									printf(CGRN "Good news, you have a `%s` so ME is present but can be disabled, continuing...\n\n" RESET, name);
 | 
				
			||||||
@@ -242,6 +244,8 @@ static void dump_me_info() {
 | 
				
			|||||||
		exit(1);
 | 
							exit(1);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (name == NULL)
 | 
				
			||||||
 | 
							name = "<unknown>";
 | 
				
			||||||
	printf("MEI found: [%x:%x] %s\n\n", dev->vendor_id, dev->device_id, name);
 | 
						printf("MEI found: [%x:%x] %s\n\n", dev->vendor_id, dev->device_id, name);
 | 
				
			||||||
	stat = pci_read_long(dev, 0x40);
 | 
						stat = pci_read_long(dev, 0x40);
 | 
				
			||||||
	printf("ME Status   : 0x%x\n", stat);
 | 
						printf("ME Status   : 0x%x\n", stat);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user