aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppHttpUploadManager.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-09-10 13:41:49 +0200
committerLinus Jahn <lnj@kaidan.im>2022-09-10 13:41:49 +0200
commit321a5d9e8496ffaf2031ed37a508bd125b430125 (patch)
tree09c1bb5a0a60757100b14d5f4cd18bc8da090757 /src/client/QXmppHttpUploadManager.cpp
parentd0fdaa4627754a538ffb76dc9ad249c893b67691 (diff)
downloadqxmpp-321a5d9e8496ffaf2031ed37a508bd125b430125.tar.gz
HttpUploadManager: Avoid UB if UploadRequestManager does not exist
Diffstat (limited to 'src/client/QXmppHttpUploadManager.cpp')
-rw-r--r--src/client/QXmppHttpUploadManager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/client/QXmppHttpUploadManager.cpp b/src/client/QXmppHttpUploadManager.cpp
index 04153b9b..e0ce05f9 100644
--- a/src/client/QXmppHttpUploadManager.cpp
+++ b/src/client/QXmppHttpUploadManager.cpp
@@ -278,6 +278,13 @@ std::shared_ptr<QXmppHttpUpload> QXmppHttpUploadManager::uploadFile(QIODevice *d
std::shared_ptr<QXmppHttpUpload> upload(new QXmppHttpUpload);
+ auto *uploadRequestManager = client()->findExtension<QXmppUploadRequestManager>();
+ if (!uploadRequestManager) {
+ upload->d->reportError({ QStringLiteral("QXmppUploadRequestManager has not been added to the client."), std::any() });
+ upload->d->reportFinished();
+ return upload;
+ }
+
if (!data->isOpen()) {
upload->d->reportError({ QStringLiteral("Input data device MUST be open."), std::any() });
upload->d->reportFinished();