mirror of
https://git.proxmox.com/git/fwupd
synced 2025-07-27 11:09:28 +00:00
Fix installing the dbx update when not using fwupdtool --force
Fixes https://github.com/fwupd/fwupd/issues/5089
This commit is contained in:
parent
ae70c210c5
commit
cdbc6b5266
@ -393,4 +393,5 @@ fu_efi_signature_list_class_init(FuEfiSignatureListClass *klass)
|
|||||||
static void
|
static void
|
||||||
fu_efi_signature_list_init(FuEfiSignatureList *self)
|
fu_efi_signature_list_init(FuEfiSignatureList *self)
|
||||||
{
|
{
|
||||||
|
fu_firmware_add_flag(FU_FIRMWARE(self), FU_FIRMWARE_FLAG_ALWAYS_SEARCH);
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,8 @@ fu_firmware_flag_to_string(FuFirmwareFlags flag)
|
|||||||
return "done-parse";
|
return "done-parse";
|
||||||
if (flag == FU_FIRMWARE_FLAG_HAS_STORED_SIZE)
|
if (flag == FU_FIRMWARE_FLAG_HAS_STORED_SIZE)
|
||||||
return "has-stored-size";
|
return "has-stored-size";
|
||||||
|
if (flag == FU_FIRMWARE_FLAG_ALWAYS_SEARCH)
|
||||||
|
return "always-search";
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,6 +106,8 @@ fu_firmware_flag_from_string(const gchar *flag)
|
|||||||
return FU_FIRMWARE_FLAG_DONE_PARSE;
|
return FU_FIRMWARE_FLAG_DONE_PARSE;
|
||||||
if (g_strcmp0(flag, "has-stored-size") == 0)
|
if (g_strcmp0(flag, "has-stored-size") == 0)
|
||||||
return FU_FIRMWARE_FLAG_HAS_STORED_SIZE;
|
return FU_FIRMWARE_FLAG_HAS_STORED_SIZE;
|
||||||
|
if (g_strcmp0(flag, "always-search") == 0)
|
||||||
|
return FU_FIRMWARE_FLAG_ALWAYS_SEARCH;
|
||||||
return FU_FIRMWARE_FLAG_NONE;
|
return FU_FIRMWARE_FLAG_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -816,7 +820,8 @@ fu_firmware_check_magic_for_offset(FuFirmware *self,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* fuzzing */
|
/* fuzzing */
|
||||||
if ((flags & FWUPD_INSTALL_FLAG_NO_SEARCH) > 0) {
|
if (!fu_firmware_has_flag(self, FU_FIRMWARE_FLAG_ALWAYS_SEARCH) &&
|
||||||
|
(flags & FWUPD_INSTALL_FLAG_NO_SEARCH) > 0) {
|
||||||
if (!klass->check_magic(self, fw, *offset, error)) {
|
if (!klass->check_magic(self, fw, *offset, error)) {
|
||||||
g_prefix_error(error, "not searching magic due to install flags: ");
|
g_prefix_error(error, "not searching magic due to install flags: ");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -125,6 +125,16 @@ struct _FuFirmwareClass {
|
|||||||
* Since: 1.8.2
|
* Since: 1.8.2
|
||||||
**/
|
**/
|
||||||
#define FU_FIRMWARE_FLAG_HAS_STORED_SIZE (1u << 5)
|
#define FU_FIRMWARE_FLAG_HAS_STORED_SIZE (1u << 5)
|
||||||
|
/**
|
||||||
|
* FU_FIRMWARE_FLAG_ALWAYS_SEARCH:
|
||||||
|
*
|
||||||
|
* Always searches for magic regardless of the install flags.
|
||||||
|
* This is useful for firmware that always has an *unparsed* variable-length
|
||||||
|
* header.
|
||||||
|
*
|
||||||
|
* Since: 1.8.6
|
||||||
|
**/
|
||||||
|
#define FU_FIRMWARE_FLAG_ALWAYS_SEARCH (1u << 6)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FuFirmwareFlags:
|
* FuFirmwareFlags:
|
||||||
|
Loading…
Reference in New Issue
Block a user