From 37a0124b62a6f74eff186924ec5b5859b943a6d3 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Wed, 11 Jan 2023 15:03:11 +0000 Subject: [PATCH] trivial: Create the parent directories when using fu_firmware_write_file() --- libfwupdplugin/fu-firmware.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libfwupdplugin/fu-firmware.c b/libfwupdplugin/fu-firmware.c index b66009d48..2a6e52b75 100644 --- a/libfwupdplugin/fu-firmware.c +++ b/libfwupdplugin/fu-firmware.c @@ -1392,6 +1392,7 @@ gboolean fu_firmware_write_file(FuFirmware *self, GFile *file, GError **error) { g_autoptr(GBytes) blob = NULL; + g_autoptr(GFile) parent = NULL; g_return_val_if_fail(FU_IS_FIRMWARE(self), FALSE); g_return_val_if_fail(G_IS_FILE(file), FALSE); @@ -1400,6 +1401,11 @@ fu_firmware_write_file(FuFirmware *self, GFile *file, GError **error) blob = fu_firmware_write(self, error); if (blob == NULL) return FALSE; + parent = g_file_get_parent(file); + if (!g_file_query_exists(parent, NULL)) { + if (!g_file_make_directory_with_parents(parent, NULL, error)) + return FALSE; + } return g_file_replace_contents(file, g_bytes_get_data(blob, NULL), g_bytes_get_size(blob),