From 2b81290829b7ba2ff53b77d2fe681ddde3ba73ec Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Wed, 27 Apr 2022 19:38:20 +0100 Subject: [PATCH] synaptics-prometheus: Add a sanity check to fix a fuzzing failure Fixes https://oss-fuzz.com/testcase-detail/6232454836387840 --- plugins/synaptics-prometheus/fu-synaprom-firmware.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/synaptics-prometheus/fu-synaprom-firmware.c b/plugins/synaptics-prometheus/fu-synaprom-firmware.c index d9f40a39b..e969629fb 100644 --- a/plugins/synaptics-prometheus/fu-synaprom-firmware.c +++ b/plugins/synaptics-prometheus/fu-synaprom-firmware.c @@ -104,6 +104,17 @@ fu_synaprom_firmware_parse(FuFirmware *firmware, tag); return FALSE; } + + /* sanity check */ + img = fu_firmware_get_image_by_idx(firmware, tag, NULL); + if (img != NULL) { + g_set_error(error, + G_IO_ERROR, + G_IO_ERROR_INVALID_DATA, + "tag 0x%04x already present in image", + tag); + return FALSE; + } hdrsz = GUINT32_FROM_LE(header.bufsz); if (hdrsz == 0) { g_set_error(error,