[libcamera-devel] [PATCH] android: camera_device: Fix crash in calling CameraDevice::close()
Hirokazu Honda
hiroh at chromium.org
Tue Aug 31 10:05:28 CEST 2021
This fixes the crash when post processing is needed and some capture
request is being processed by PipelineHandler upon calling
CameraDevice::close().
The crash happens in Request::completeBuffer(), which is invoked by
Camera::stop(). It uses FrameBuffer after free. The FrameBuffer is
allocated and owned by FrameBufferAllocator, and FrameBufferAllocator
is owned by CamerStream. So Camera::stop() should be executed before
destroying CameraStream.
Signed-off-by: Hirokazu Honda <hiroh at chromium.org>
---
src/android/camera_device.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 8ca76719..74a95a2a 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -423,10 +423,10 @@ int CameraDevice::open(const hw_module_t *hardwareModule)
void CameraDevice::close()
{
- streams_.clear();
-
stop();
+ streams_.clear();
+
camera_->release();
}
--
2.33.0.259.gc128427fd7-goog
More information about the libcamera-devel
mailing list