From 1d2c8f7874d223f853bcaf36f8361cdd0a0f85de Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Sat, 9 Jul 2022 14:35:12 +0100 Subject: [PATCH] Find the remote using the SHA256 hash, falling back to SHA1 --- src/fu-engine.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/fu-engine.c b/src/fu-engine.c index d0a8b8537..b15ed2ef6 100644 --- a/src/fu-engine.c +++ b/src/fu-engine.c @@ -4357,7 +4357,7 @@ fu_engine_get_details_for_bytes(FuEngine *self, GError **error) { const gchar *remote_id; - g_autofree gchar *csum = NULL; + GChecksumType checksum_types[] = {G_CHECKSUM_SHA256, G_CHECKSUM_SHA1, 0}; g_autoptr(GError) error_local = NULL; g_autoptr(GPtrArray) components = NULL; g_autoptr(GPtrArray) details = NULL; @@ -4389,8 +4389,12 @@ fu_engine_get_details_for_bytes(FuEngine *self, return NULL; /* does this exist in any enabled remote */ - csum = g_compute_checksum_for_bytes(G_CHECKSUM_SHA1, blob); - remote_id = fu_engine_get_remote_id_for_checksum(self, csum); + for (guint i = 0; checksum_types[i] != 0; i++) { + g_autofree gchar *csum = g_compute_checksum_for_bytes(checksum_types[i], blob); + remote_id = fu_engine_get_remote_id_for_checksum(self, csum); + if (remote_id != NULL) + break; + } /* create results with all the metadata in */ details = g_ptr_array_new_with_free_func((GDestroyNotify)g_object_unref);