Review Request 128569: Avoid crash when handling RDP error and xfreerdp quits.

Matthew Dawson matthew at mjdsystems.ca
Mon Aug 1 17:28:11 UTC 2016


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128569/
-----------------------------------------------------------

Review request for KDE Utils and Urs Wolfer.


Bugs: 365054
    http://bugs.kde.org/show_bug.cgi?id=365054


Repository: krdc


Description
-------

If xfreerdp sent a failure message then quit, the RDP plugin would first
show a message box with a relevant message.  During that time, the inner
event loop would handle the xfreerdp process quitting, which would signal
krdc to cleanup the RDP plugin's resources.  When the message box event loop
completed, the RdpView would have been destroyed, causing a crash.

Now the RdpView signals that the view is quitting as soon as the message box
is shown, and avoids trying to quit twice if another part signals a quit.
Once the message box is dismissed, the process continues as normal.  This
adds the necessary mechanisms to handle this, as well as moving the message
box display code to connectionError, to avoid some duplication.

BUG: 365054
REVIEW: 128569

I've listed the above bug, as I suspect it is part of this issue, but I'm not sure.  I'll take out the reference if desired.


Diffs
-----

  rdp/rdpview.h 0980c8d83d08b6e860af0d5b456a5b040f6aae80 
  rdp/rdpview.cpp 7f6081277919a41e35456d8069e5fc7cad23e9ad 

Diff: https://git.reviewboard.kde.org/r/128569/diff/


Testing
-------

Before, when attempting a connection to an unreachable RDP server the app crashed after dismissing the dialogue box.

After, it no longer does.  Everything appears to still clean up.


Thanks,

Matthew Dawson

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-utils-devel/attachments/20160801/50b180b4/attachment.html>


More information about the Kde-utils-devel mailing list