diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-05-21 15:03:04 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-05-23 14:04:05 +0000 |
commit | e4bf3c4421e09d1ce9abc6d79b07dfa9f43cfb9d (patch) | |
tree | f726167ae538b0749e082f6361e6c6022b834939 /src/multimedia | |
parent | faaa989d87831b2d287e6170af4a44cdef087780 (diff) |
Fix use-after-free errors
Make sure we tell the QVideoSink if it's source is being
deleted.
Change-Id: Iac7541d47167b56eb1567e656e9717b035010e33
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Diffstat (limited to 'src/multimedia')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 1 | ||||
-rw-r--r-- | src/multimedia/recording/qmediacapturesession.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
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; } |