trivial: Fix writing uSWIDv2 payloads

The optional flags come last in the header.
This commit is contained in:
Richard Hughes 2022-10-07 14:17:53 +01:00
parent a01379f835
commit 2fef67db3b

View File

@ -258,13 +258,13 @@ fu_uswid_firmware_write(FuFirmware *firmware, GError **error)
g_byte_array_append(buf, USWID_HEADER_MAGIC, sizeof(USWID_HEADER_MAGIC)); g_byte_array_append(buf, USWID_HEADER_MAGIC, sizeof(USWID_HEADER_MAGIC));
fu_byte_array_append_uint8(buf, priv->hdrver); fu_byte_array_append_uint8(buf, priv->hdrver);
fu_byte_array_append_uint16(buf, fu_uswid_firmware_calculate_hdrsz(self), G_LITTLE_ENDIAN); fu_byte_array_append_uint16(buf, fu_uswid_firmware_calculate_hdrsz(self), G_LITTLE_ENDIAN);
fu_byte_array_append_uint32(buf, payload->len, G_LITTLE_ENDIAN);
if (priv->hdrver >= 2) { if (priv->hdrver >= 2) {
guint8 flags = 0; guint8 flags = 0;
if (priv->compressed) if (priv->compressed)
flags |= USWID_HEADER_FLAG_COMPRESSED; flags |= USWID_HEADER_FLAG_COMPRESSED;
fu_byte_array_append_uint8(buf, flags); fu_byte_array_append_uint8(buf, flags);
} }
fu_byte_array_append_uint32(buf, payload->len, G_LITTLE_ENDIAN);
g_byte_array_append(buf, payload->data, payload->len); g_byte_array_append(buf, payload->data, payload->len);
/* success */ /* success */