mumble/src
Robert Adam cc3c824499 FIX(client,ui): Crash by pressing Esc in nickname dialog
When having the dialog open that allows to set a custom nickname to
another client (UserLocalNicknameDialog) pressing Esc would crash
Mumble. This is due to the Esc key triggering the dialog's reject()
function in which the dialog's smart-pointer object is removed from a
global list and therefore goes out of scope.

This results in the dialog getting deleted, but since this is done in a
member function of the dialog, there is still code accessing the now
deleted object (in Qt's internals) and this is causing the segmentation
fault.

The fix is to use a custom deleter function for the dialog pointer that
instead of using delete on it, calls deleteLater() on it. Thus the
deletion of the object is left to Qt which can then do it at a point at
which it is done with it.

As this is something that could get useful in other locations as well,
the custom deleter function was outsourced into its own file.

Fixes #4666
2021-01-04 12:39:28 +01:00
..
crypto FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
mumble FIX(client,ui): Crash by pressing Esc in nickname dialog 2021-01-04 12:39:28 +01:00
mumble_exe REFAC(installer-msi) Simplify WiX component install 2020-12-11 22:07:25 -05:00
murmur FIX(client, server): Load native mDNS/DNS-SD symbols at runtime 2020-12-23 05:13:20 +01:00
murmur_grpcwrapper_protoc_plugin REFAC: Fix warning about boost bind 2020-09-12 13:46:55 +02:00
tests FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ACL.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ACL.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Ban.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Ban.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ByteSwap.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Channel.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Channel.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ChannelListener.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ChannelListener.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
CMakeLists.txt FIX(client,ui): Crash by pressing Esc in nickname dialog 2021-01-04 12:39:28 +01:00
Connection.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Connection.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
CryptState.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
EnvUtils.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
EnvUtils.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
FFDHE.cpp Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
FFDHE.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
FFDHETable.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Group.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Group.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
HostAddress.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
HostAddress.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
HTMLFilter.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
HTMLFilter.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
License.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
License.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
licenses.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
LogEmitter.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
LogEmitter.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Message.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Mumble.proto DOCS: Fix typos in Mumble.proto 2020-06-29 17:13:59 +02:00
Net.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Net.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
OSInfo.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
OSInfo.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
PacketDataStream.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
PasswordGenerator.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
PasswordGenerator.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
PlatformCheck.cpp REFAC(shared): replace NULL with nullptr 2020-07-02 12:19:16 +02:00
PlatformCheck.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
QtUtils.cpp FIX(client,ui): Crash by pressing Esc in nickname dialog 2021-01-04 12:39:28 +01:00
QtUtils.h FIX(client,ui): Crash by pressing Esc in nickname dialog 2021-01-04 12:39:28 +01:00
SelfSignedCertificate.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SelfSignedCertificate.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ServerAddress.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ServerAddress.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
ServerResolver.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ServerResolver.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ServerResolverRecord.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
ServerResolverRecord.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SignalCurry.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SpeechFlags.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SSL.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SSL.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SSLCipherInfo.cpp REFAC(shared): replace NULL with nullptr 2020-07-02 12:19:16 +02:00
SSLCipherInfo.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
SSLCipherInfoTable.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
SSLLocks.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
SSLLocks.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Timer.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Timer.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
UnresolvedServerAddress.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
UnresolvedServerAddress.h Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
User.cpp FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
User.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Utils.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
Version.cpp Auto-update LICENSE.header in source files 2020-01-07 03:09:22 +01:00
Version.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00
win.h FORMAT: Run clang-format 10 on all C/CXX source-files 2020-09-11 18:29:33 +02:00