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
Owner

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 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 😉
SlavekB added 1 commit 3 years ago
3e4beea9ee
Fix crash in case tdelibs is built without support for NetworkManager.
This resolves issue #8.

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Poster
Owner

I did a test with wired connection on my test virtual machine and TDE NetworkManager seems to be properly functional.

I did a test with wired connection on my test virtual machine and TDE NetworkManager seems to be properly functional.
MicheleC requested changes 3 years ago
MicheleC left a comment
Owner

Needs a few more pointer checks

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();
Owner

Here we should check that 'dev' is not NULL

Here we should check that 'dev' is not NULL
MicheleC marked this conversation as resolved
@ -129,10 +132,14 @@ TQStringList DeviceTrayComponent::getToolTipText()
TQStringList list;
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -55,4 +60,4 @@
// create an appropriate connection
TDENetworkConnection* conn = 0;
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -81,3 +90,4 @@
menu->insertItem (subhead, -1, -1);
TDEGlobalNetworkManager* nm = TDEGlobal::networkManager();
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -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();
Owner

Same here, make sure 'new_tray_dev' is valid

Same here, make sure 'new_tray_dev' is valid
MicheleC marked this conversation as resolved
@ -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();
Owner

Same here, make sure 'dtc_comp_dev' is valid

Same here, make sure 'dtc_comp_dev' is valid
MicheleC marked this conversation as resolved
@ -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();
Owner

Same here, make sure 'dtc_comp_dev' is valid

Same here, make sure 'dtc_comp_dev' is valid
MicheleC marked this conversation as resolved
@ -76,0 +78,4 @@
// create new VPNService Object
VPNService* vpnservice = new VPNService(serviceString, serviceString, TQT_TQOBJECT(TDENetworkManager::getInstance()));
if (!vpnservice->getVPNPlugin())
Owner

Same here, make sure 'vpnservice' is valid

Same here, make sure 'vpnservice' is valid
MicheleC marked this conversation as resolved
@ -118,0 +133,4 @@
{
// create new VPNService Object
VPNService* vpnservice = new VPNService(service_type, service_type, TQT_TQOBJECT(TDENetworkManager::getInstance()));
if (!vpnservice->getVPNPlugin())
Owner

Same here, make sure 'vpnservice' is valid

Same here, make sure 'vpnservice' is valid
MicheleC marked this conversation as resolved
@ -81,7 +85,9 @@ void WiredDeviceTray::addMenuItems(TDEPopupMenu* menu)
menu->insertItem (subhead, -1, -1);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -70,11 +70,15 @@ TQStringList WirelessDeviceTray::getToolTipText()
TQStringList tooltip = DeviceTrayComponent::getToolTipText();
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -156,10 +164,14 @@ void WirelessDeviceTray::addWirelessNetworks(TDEPopupMenu* menu)
// get the currently active connection
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -267,7 +279,8 @@ void WirelessDeviceTray::addMenuItems(TDEPopupMenu* menu)
menu->insertItem (subhead, -1, -1);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -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();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -364,22 +386,31 @@ void WirelessDeviceTray::slotCheckActiveAccessPoint()
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -393,27 +424,36 @@ void WirelessDeviceTray::apPropertyChanged(TDEMACAddress BSSID, TDENetworkAPEven
if (event == TDENetworkAPEventType::SignalStrengthChanged) {
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -433,14 +473,19 @@ void WirelessDeviceTray::tdeAccessPointStatusChangedHandler(TDEMACAddress BSSID,
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
@ -60,4 +59,2 @@
TDEGlobalNetworkManager* nm = TDEGlobal::networkManager();
TDENetworkConnection* conn = nm->findConnectionByUUID(_conn);
TDENetworkConnectionManager* deviceConnMan = dev->connectionManager();
Owner

Same here, make sure 'dev' is valid

Same here, make sure 'dev' is valid
MicheleC marked this conversation as resolved
SlavekB force-pushed issue/8/crash-on-start from 3e4beea9ee to 88cc44bac4 3 years ago
SlavekB requested review from MicheleC 3 years ago
Poster
Owner

I added many other tests to verify that the device was successfully searched. This prevents other potential crashes. @MicheleC, thank you for notifying this.

I added many other tests to verify that the device was successfully searched. This prevents other potential crashes. @MicheleC, thank you for notifying this.
MicheleC approved these changes 3 years ago
MicheleC left a comment
Owner

Looks good

Looks good
SlavekB merged commit 88cc44bac4 into master 3 years ago
SlavekB deleted branch issue/8/crash-on-start 3 years ago
SlavekB added this to the R14.0.11 release milestone 3 years ago

Reviewers

MicheleC approved these changes 3 years ago
The pull request has been merged as 88cc44bac4.
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: TDE/tdenetworkmanager#9
Loading…
There is no content yet.