summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMÃ¥rten Nordheim <marten.nordheim@qt.io>2022-03-24 14:42:27 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-04-26 17:35:33 +0000
commitae2dff510b4ec71abb1d80dbfe04ed24762bcb6b (patch)
tree6ce05eae68a597260d70f54cfa4f2c09ba4c83e2
parent272dfe160df6e923444e790fded2834fc68d9f8c (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>
-rw-r--r--src/multimedia/playback/qmediaplayer.cpp9
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));