diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-09-10 13:41:49 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-09-10 13:41:49 +0200 |
| commit | 321a5d9e8496ffaf2031ed37a508bd125b430125 (patch) | |
| tree | 09c1bb5a0a60757100b14d5f4cd18bc8da090757 /src/client/QXmppHttpUploadManager.cpp | |
| parent | d0fdaa4627754a538ffb76dc9ad249c893b67691 (diff) | |
| download | qxmpp-321a5d9e8496ffaf2031ed37a508bd125b430125.tar.gz | |
HttpUploadManager: Avoid UB if UploadRequestManager does not exist
Diffstat (limited to 'src/client/QXmppHttpUploadManager.cpp')
| -rw-r--r-- | src/client/QXmppHttpUploadManager.cpp | 7 |
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(); |
