From: Michael Schuster Date: Fri, 29 May 2020 16:12:36 +0000 (+0200) Subject: ShareDialog: Fix crash, properly init member pointers X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~222^2^2~198^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=efdef8535f59511797b2430e87de7e82ff29feea;p=nextcloud-desktop.git ShareDialog: Fix crash, properly init member pointers _manager ptr only got initialized in the constructor when sharingPossible was set to true Changes: - Move member ptr inits from constructor to the header file's class definition - Init _manager: set to nullptr too - Add check for _manager to avoid crash in showSharingUi() Signed-off-by: Michael Schuster --- diff --git a/src/gui/sharedialog.cpp b/src/gui/sharedialog.cpp index 91081e057..13f437c0a 100644 --- a/src/gui/sharedialog.cpp +++ b/src/gui/sharedialog.cpp @@ -52,10 +52,6 @@ ShareDialog::ShareDialog(QPointer accountState, , _maxSharingPermissions(maxSharingPermissions) , _privateLinkUrl(accountState->account()->deprecatedPrivateLinkUrl(numericFileId).toString(QUrl::FullyEncoded)) , _startPage(startPage) - , _linkWidgetList({}) - , _emptyShareLinkWidget(nullptr) - , _userGroupWidget(nullptr) - , _progressIndicator(nullptr) { setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); setAttribute(Qt::WA_DeleteOnClose); @@ -295,7 +291,9 @@ void ShareDialog::showSharingUi() } if (theme->linkSharing()) { - _manager->fetchShares(_sharePath); + if(_manager != nullptr) { + _manager->fetchShares(_sharePath); + } } } @@ -378,4 +376,4 @@ void ShareDialog::changeEvent(QEvent *e) QDialog::changeEvent(e); } -} +} // namespace OCC diff --git a/src/gui/sharedialog.h b/src/gui/sharedialog.h index 849dc6ec5..7f03e29be 100644 --- a/src/gui/sharedialog.h +++ b/src/gui/sharedialog.h @@ -88,13 +88,14 @@ private: QByteArray _numericFileId; QString _privateLinkUrl; ShareDialogStartPage _startPage; - ShareManager *_manager; + ShareManager *_manager = nullptr; - QList _linkWidgetList; - ShareLinkWidget* _emptyShareLinkWidget; - ShareUserGroupWidget *_userGroupWidget; - QProgressIndicator *_progressIndicator; + QList _linkWidgetList = {}; + ShareLinkWidget* _emptyShareLinkWidget = nullptr; + ShareUserGroupWidget *_userGroupWidget = nullptr; + QProgressIndicator *_progressIndicator = nullptr; }; -} + +} // namespace OCC #endif // SHAREDIALOG_H