From e4bf3c4421e09d1ce9abc6d79b07dfa9f43cfb9d Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 21 May 2021 15:03:04 +0200 Subject: Fix use-after-free errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure we tell the QVideoSink if it's source is being deleted. Change-Id: Iac7541d47167b56eb1567e656e9717b035010e33 Reviewed-by: Volker Hilsheimer Reviewed-by: André de la Rocha --- src/multimedia/playback/qmediaplayer.cpp | 1 + src/multimedia/recording/qmediacapturesession.cpp | 1 + 2 files changed, 2 insertions(+) (limited to 'src/multimedia') diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 02805469b..60d15f9e6 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -212,6 +212,7 @@ QMediaPlayer::~QMediaPlayer() // when a receiver is already destroyed. disconnect(); + d->setVideoSink(nullptr); delete d->control; } diff --git a/src/multimedia/recording/qmediacapturesession.cpp b/src/multimedia/recording/qmediacapturesession.cpp index 6e9df9c8d..b80c7910f 100644 --- a/src/multimedia/recording/qmediacapturesession.cpp +++ b/src/multimedia/recording/qmediacapturesession.cpp @@ -124,6 +124,7 @@ QMediaCaptureSession::~QMediaCaptureSession() d_ptr->encoder->setCaptureSession(nullptr); if (d_ptr->imageCapture) d_ptr->imageCapture->setCaptureSession(nullptr); + d_ptr->setVideoSink(nullptr); delete d_ptr->captureSession; delete d_ptr; } -- cgit v1.2.3