[libcamera-devel] [PATCH] libcamera: Avoid accessing a non existent control

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Tue Nov 17 14:24:32 CET 2020


When pushing a controlone should check if it exists before accessing it,
in order to avoid raising abort and crash.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
---
 src/libcamera/delayed_controls.cpp | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/libcamera/delayed_controls.cpp b/src/libcamera/delayed_controls.cpp
index f1c5f890..422deee5 100644
--- a/src/libcamera/delayed_controls.cpp
+++ b/src/libcamera/delayed_controls.cpp
@@ -147,7 +147,11 @@ bool DelayedControls::queue(const ControlList &controls)
 
 	/* Update with new controls. */
 	for (const auto &control : controls) {
-		const ControlId *id = device_->controls().idmap().at(control.first);
+		const ControlIdMap &idmap = device_->controls().idmap();
+		if (idmap.find(control.first) == idmap.end())
+			return false;
+
+		const ControlId *id = idmap.at(control.first);
 
 		if (delays_.find(id) == delays_.end())
 			return false;
-- 
2.27.0



More information about the libcamera-devel mailing list