* Avoid garbage names in efivarfs due to buggy firmware by zero'ing
EFI variable name - Ross Lagerwall
 
  * Stop erroneously dropping upper 32-bits of boot command line pointer
    in EFI boot stub and stash them in ext_cmd_line_ptr - Roy Franz
 
  * Fix double-free bug in error handling code path of EFI runtime map
    code - Dan Carpenter
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVSOSjAAoJEC84WcCNIz1VXk4P/R4GwmmzZBdYAseiwv6u/NRm
 bTXnK7SN1ZyY8WibEm8ptXJuTIyXZxmQYr4lY97canJy8P7umtoCP7P3tS0Ier8U
 N1AMFGes7xlwBhjIRz2Cr9e5plr5H3qk65JNMuUDp0/MVuPEiNEzi6efbL82dh9S
 RCLxQ94paX+wV6ltQMKWGD3v0WnHkzouuCdETCGaozqQmJx6PGzDmJ51kXYRWDyP
 esTCZpRHlIzKN0u3XEFgswlIev2wab0BtjXYOzUqb0AH1Q13OgQfiswX3WIG6k+c
 3xuMH4JByBIDwOLudgu0D6Sst2QwVJZnw6JavoEgGCFao0n6IPzUGolAWLFMdDhL
 Kparzc6ObHpiqYtqBjJXW+awOENVS4qIrn9MHc9wwsJxXOy++0YnyYCgge0iia47
 F2/pOHvkd52QiQ0gC442W0EdX1VlPCUR04G0s4d3UX3O875yl80QTyLQ4n7ZK074
 3wfi/9+Fuv8wWMJ4HI8FJgaTl57KzAP4ZPh2cy8oPs6bkiiwlnMWH24bEhlxKBK4
 mEIze045kyswz3rV7j1WX3MSXrPA2cM95L5WlvVTxckMn40QwLPBWSDCOJIj3K5K
 yhXNHHfHzG/GRm3SfD2i1EcK4gUW82awl72jJn0F69YMI5a+T1BIppEMP2pzsWE4
 FcwvWDxzWwKxYKJosfkk
 =f7a2
 -----END PGP SIGNATURE-----
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent
Pull EFI fixes from Matt Fleming:
 * Avoid garbage names in efivarfs due to buggy firmware by zeroing
   EFI variable name. (Ross Lagerwall)
 * Stop erroneously dropping upper 32 bits of boot command line pointer
   in EFI boot stub and stash them in ext_cmd_line_ptr. (Roy Franz)
 * Fix double-free bug in error handling code path of EFI runtime map
   code. (Dan Carpenter)
Signed-off-by: Ingo Molnar <mingo@kernel.org>
			
			
This commit is contained in:
		
						commit
						c102cb097d
					
				| @ -1109,6 +1109,8 @@ struct boot_params *make_boot_params(struct efi_config *c) | ||||
| 	if (!cmdline_ptr) | ||||
| 		goto fail; | ||||
| 	hdr->cmd_line_ptr = (unsigned long)cmdline_ptr; | ||||
| 	/* Fill in upper bits of command line address, NOP on 32 bit  */ | ||||
| 	boot_params->ext_cmd_line_ptr = (u64)(unsigned long)cmdline_ptr >> 32; | ||||
| 
 | ||||
| 	hdr->ramdisk_image = 0; | ||||
| 	hdr->ramdisk_size = 0; | ||||
|  | ||||
| @ -120,7 +120,8 @@ add_sysfs_runtime_map_entry(struct kobject *kobj, int nr) | ||||
| 	entry = kzalloc(sizeof(*entry), GFP_KERNEL); | ||||
| 	if (!entry) { | ||||
| 		kset_unregister(map_kset); | ||||
| 		return entry; | ||||
| 		map_kset = NULL; | ||||
| 		return ERR_PTR(-ENOMEM); | ||||
| 	} | ||||
| 
 | ||||
| 	memcpy(&entry->md, efi_runtime_map + nr * efi_memdesc_size, | ||||
| @ -132,6 +133,7 @@ add_sysfs_runtime_map_entry(struct kobject *kobj, int nr) | ||||
| 	if (ret) { | ||||
| 		kobject_put(&entry->kobj); | ||||
| 		kset_unregister(map_kset); | ||||
| 		map_kset = NULL; | ||||
| 		return ERR_PTR(ret); | ||||
| 	} | ||||
| 
 | ||||
| @ -195,8 +197,6 @@ out_add_entry: | ||||
| 		entry = *(map_entries + j); | ||||
| 		kobject_put(&entry->kobj); | ||||
| 	} | ||||
| 	if (map_kset) | ||||
| 		kset_unregister(map_kset); | ||||
| out: | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| @ -121,7 +121,7 @@ static int efivarfs_callback(efi_char16_t *name16, efi_guid_t vendor, | ||||
| 	int len, i; | ||||
| 	int err = -ENOMEM; | ||||
| 
 | ||||
| 	entry = kmalloc(sizeof(*entry), GFP_KERNEL); | ||||
| 	entry = kzalloc(sizeof(*entry), GFP_KERNEL); | ||||
| 	if (!entry) | ||||
| 		return err; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user