From 2eaee4a7a166329355be63a5dfe656a9d1438ed5 Mon Sep 17 00:00:00 2001 From: JackBurton79 Date: Mon, 29 Aug 2022 22:23:29 +0200 Subject: [PATCH] Screen preflet: fix usage of std::find() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8689ea6baa408d07c715703e8f8bf8f29bf40f60 std::find() never returns NULL but the last element in case of failure Reviewed-on: https://review.haiku-os.org/c/haiku/+/5602 Reviewed-by: Máximo Castañeda Reviewed-by: waddlesplash Tested-by: Commit checker robot --- src/preferences/screen/ScreenMode.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/preferences/screen/ScreenMode.cpp b/src/preferences/screen/ScreenMode.cpp index 59ca45b4cd..116b897f69 100644 --- a/src/preferences/screen/ScreenMode.cpp +++ b/src/preferences/screen/ScreenMode.cpp @@ -381,9 +381,12 @@ ScreenMode::GetManufacturerFromID(const char* id) const // We assume the array is sorted const size_t numElements = sizeof(kPNPIDs) / sizeof(kPNPIDs[0]); const struct pnp_id key = { id, "dummy" }; - const pnp_id* element = std::find(kPNPIDs, kPNPIDs + numElements, key); - if (element == NULL) + const pnp_id* lastElement = kPNPIDs + numElements; + const pnp_id* element = std::find(kPNPIDs, lastElement, key); + if (element == lastElement) { + // can't find the vendor code return NULL; + } return element->manufacturer; }