diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-16 08:36:31 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-07-16 08:51:09 +0300 |
commit | 124336329c11e1fc1687504fc37f67189a44ee2d (patch) | |
tree | 5770ed299cde016eac0763624982991704a438f0 /src/qcam/viewfinder.cpp | |
parent | d55c8018cdfe6a18aea1f761c8b3f0673d902aff (diff) |
libcamera: pipeline: ipu3: Free internal buffers after stopping streaming
The internal buffers between the CIO2 and ImgU are freed by the
CIO2Device::stop() method, which is called first when stopping
streaming. The ImgUDevice::stop() method is then called, and attempts to
report completion for all queued buffers, which we have just freed. The
use-after-free corrupts memory, leading to crashes.
Fix this by moving the vector of internal buffers to the IPU3CameraData
where it belongs, and free the buffers after stopping both devices.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'src/qcam/viewfinder.cpp')
0 files changed, 0 insertions, 0 deletions