From 2883b577dc81da871ec7c72c7e86c53f10c7b8fe Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Wed, 13 Apr 2022 10:43:39 +0100 Subject: [PATCH] trivial: Fix a potential OOB write that can't actually happen --- libfwupdplugin/fu-device.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libfwupdplugin/fu-device.c b/libfwupdplugin/fu-device.c index d57d9ec17..a800a7fbf 100644 --- a/libfwupdplugin/fu-device.c +++ b/libfwupdplugin/fu-device.c @@ -481,6 +481,7 @@ fu_device_get_request_cnt(FuDevice *self, FwupdRequestKind request_kind) { FuDevicePrivate *priv = GET_PRIVATE(self); g_return_val_if_fail(FU_IS_DEVICE(self), G_MAXUINT); + g_return_val_if_fail(request_kind < FWUPD_REQUEST_KIND_LAST, G_MAXUINT); return priv->request_cnts[request_kind]; } @@ -4770,6 +4771,10 @@ fu_device_emit_request(FuDevice *self, FwupdRequest *request) g_critical("a request must have an assigned ID"); return; } + if (fwupd_request_get_kind(request) >= FWUPD_REQUEST_KIND_LAST) { + g_critical("invalid request kind"); + return; + } /* ensure set */ fwupd_request_set_device_id(request, fu_device_get_id(self));