diff options
author | MÃ¥rten Nordheim <marten.nordheim@qt.io> | 2022-03-24 14:42:27 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-04-26 17:35:33 +0000 |
commit | ae2dff510b4ec71abb1d80dbfe04ed24762bcb6b (patch) | |
tree | 6ce05eae68a597260d70f54cfa4f2c09ba4c83e2 /src | |
parent | 272dfe160df6e923444e790fded2834fc68d9f8c (diff) |
Check result of open()ing a QTemporaryFile
Change-Id: Ief4f6651a8763deaa259a62c1076ea8be1d62da1
Coverity-Id: 390145
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 983e50fbef960086e05d7de4f13a534216f76d66)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 5c11d8e81..ffa683642 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -195,7 +195,14 @@ void QMediaPlayerPrivate::setMedia(const QUrl &media, QIODevice *stream) tempFile->setFileTemplate(tempFile->fileTemplate() + QLatin1Char('.') + suffix); // Copy the qrc data into the temporary file - tempFile->open(); + if (!tempFile->open()) { + control->setMedia(QUrl(), nullptr); + control->mediaStatusChanged(QMediaPlayer::InvalidMedia); + control->error(QMediaPlayer::ResourceError, tempFile->errorString()); + delete tempFile; + qrcFile.reset(); + return; + } char buffer[4096]; while (true) { qint64 len = file->read(buffer, sizeof(buffer)); |