synaptics-cxaudio: Fix a critical warning when parsing invalid firmware

This commit is contained in:
Richard Hughes 2021-01-05 13:40:40 +00:00
parent 59b6b6d2c5
commit b2e97fb6b5

View File

@ -155,6 +155,13 @@ fu_synaptics_cxaudio_firmware_parse (FuFirmware *firmware,
continue;
if (rcd->addr > FU_SYNAPTICS_CXAUDIO_EEPROM_SHADOW_SIZE)
continue;
if (rcd->buf->len == 0) {
g_set_error (error,
FWUPD_ERROR,
FWUPD_ERROR_NOT_SUPPORTED,
"record 0x%x had zero size", i);
return FALSE;
}
if (!fu_memcpy_safe (shadow, FU_SYNAPTICS_CXAUDIO_EEPROM_SHADOW_SIZE, rcd->addr, /* dst */
rcd->buf->data, rcd->buf->len, 0x0, /* src */
rcd->buf->len, error))