efi_loader: non-volatile variable not deleted from file
When deleting a non-volatile variable it was deleted from memory but the deletion was not persisted to the file system. SetVariable() may be called with attributes == 0 to delete a variable. To determine if the deletion shall be persisted we have to consider the non-volatile flag in the attributes of the deleted variable and not the value passed in the call parameter. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
		
							parent
							
								
									b055a05b98
								
							
						
					
					
						commit
						ab02c3fec4
					
				|  | @ -393,6 +393,7 @@ efi_status_t efi_set_variable_int(u16 *variable_name, const efi_guid_t *vendor, | ||||||
| 
 | 
 | ||||||
| 	if (delete) { | 	if (delete) { | ||||||
| 		/* EFI_NOT_FOUND has been handled before */ | 		/* EFI_NOT_FOUND has been handled before */ | ||||||
|  | 		attributes = var->attr; | ||||||
| 		ret = EFI_SUCCESS; | 		ret = EFI_SUCCESS; | ||||||
| 	} else if (append) { | 	} else if (append) { | ||||||
| 		u16 *old_data = var->name; | 		u16 *old_data = var->name; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue