Fix crash in case tdelibs is built without support for NetworkManager.
#9
Merged
SlavekB
merged 1 commits from issue/8/crash-on-start
into master
3 years ago
Loading…
Reference in New Issue
There is no content yet.
Delete Branch 'issue/8/crash-on-start'
Deleting a branch is permanent. It CANNOT be undone. Continue?
I tried to treat all parts where the use of zero pointer could occur => led to the crash. Before merging it should be checked and tested because I only verified that it can be built.
It is obvious that TDE NetworkManager without supporting NetworkManager in tdelibs does not give too much sense, but it is better when the application does not crash 😉
I did a test with wired connection on my test virtual machine and TDE NetworkManager seems to be properly functional.
Needs a few more pointer checks
@ -78,8 +78,11 @@ DeviceTrayComponent::DeviceTrayComponent(TQString device, KSystemTray * parent,
TDENetworkDevice* dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(m_device));
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Here we should check that 'dev' is not NULL
@ -129,10 +132,14 @@ TQStringList DeviceTrayComponent::getToolTipText()
TQStringList list;
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -55,4 +60,4 @@
// create an appropriate connection
TDENetworkConnection* conn = 0;
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -81,3 +90,4 @@
menu->insertItem (subhead, -1, -1);
TDEGlobalNetworkManager* nm = TDEGlobal::networkManager();
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -492,19 +497,22 @@ void Tray::createDeviceTrayComponent(TQString dev)
TDENetworkDevice* new_tray_dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(dev));
TDENetworkConnectionManager* deviceConnMan = new_tray_dev->connectionManager();
Same here, make sure 'new_tray_dev' is valid
@ -703,25 +712,30 @@ void Tray::trayUiChanged()
if (dtc) {
TDENetworkDevice* dtc_comp_dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(dtc->device()));
TDENetworkConnectionManager* deviceConnMan = dtc_comp_dev->connectionManager();
Same here, make sure 'dtc_comp_dev' is valid
@ -735,16 +749,21 @@ void Tray::showActiveDeviceTray() {
if (newDtc) {
TDENetworkDevice* dtc_comp_dev = dynamic_cast<TDENetworkDevice*>(hwdevices->findByUniqueID(newDtc->device()));
TDENetworkConnectionManager* deviceConnMan = dtc_comp_dev->connectionManager();
Same here, make sure 'dtc_comp_dev' is valid
@ -76,0 +78,4 @@
// create new VPNService Object
VPNService* vpnservice = new VPNService(serviceString, serviceString, TQT_TQOBJECT(TDENetworkManager::getInstance()));
if (!vpnservice->getVPNPlugin())
Same here, make sure 'vpnservice' is valid
@ -118,0 +133,4 @@
{
// create new VPNService Object
VPNService* vpnservice = new VPNService(service_type, service_type, TQT_TQOBJECT(TDENetworkManager::getInstance()));
if (!vpnservice->getVPNPlugin())
Same here, make sure 'vpnservice' is valid
@ -81,7 +85,9 @@ void WiredDeviceTray::addMenuItems(TDEPopupMenu* menu)
menu->insertItem (subhead, -1, -1);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -70,11 +70,15 @@ TQStringList WirelessDeviceTray::getToolTipText()
TQStringList tooltip = DeviceTrayComponent::getToolTipText();
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -156,10 +164,14 @@ void WirelessDeviceTray::addWirelessNetworks(TDEPopupMenu* menu)
// get the currently active connection
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -267,7 +279,8 @@ void WirelessDeviceTray::addMenuItems(TDEPopupMenu* menu)
menu->insertItem (subhead, -1, -1);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -326,24 +339,33 @@ void WirelessDeviceTray::slotUpdateDeviceState(TDENetworkConnectionStatus::TDENe
if (newState == TDENetworkConnectionStatus::Connected) {
// trigger an update of the connections seen bssids property
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -364,22 +386,31 @@ void WirelessDeviceTray::slotCheckActiveAccessPoint()
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -393,27 +424,36 @@ void WirelessDeviceTray::apPropertyChanged(TDEMACAddress BSSID, TDENetworkAPEven
if (event == TDENetworkAPEventType::SignalStrengthChanged) {
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -433,14 +473,19 @@ void WirelessDeviceTray::tdeAccessPointStatusChangedHandler(TDEMACAddress BSSID,
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
@ -60,4 +59,2 @@
TDEGlobalNetworkManager* nm = TDEGlobal::networkManager();
TDENetworkConnection* conn = nm->findConnectionByUUID(_conn);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Same here, make sure 'dev' is valid
3e4beea9ee
to88cc44bac4
3 years agoI added many other tests to verify that the device was successfully searched. This prevents other potential crashes. @MicheleC, thank you for notifying this.
Looks good
88cc44bac4
into master 3 years agoReviewers
88cc44bac4
.