From 05013a9074e406dd4e90db69723cd408f55321f9 Mon Sep 17 00:00:00 2001 From: Micke Prag Date: Thu, 16 Oct 2008 13:16:44 +0000 Subject: [PATCH] Fixed segfault if the device is not found --- telldus-core/driver/TellUsbD101/settings/TelldusSettings.cpp | 3 +++ .../driver/TellUsbD101/settings/TelldusSettingsConfuse.cpp | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/telldus-core/driver/TellUsbD101/settings/TelldusSettings.cpp b/telldus-core/driver/TellUsbD101/settings/TelldusSettings.cpp index 8e57ad36..77b8065e 100644 --- a/telldus-core/driver/TellUsbD101/settings/TelldusSettings.cpp +++ b/telldus-core/driver/TellUsbD101/settings/TelldusSettings.cpp @@ -16,6 +16,9 @@ Device* TelldusSettings::getDevice(int intDeviceId){ try{ char* vendor = getVendor(intDeviceId); + if (vendor == NULL) { + return NULL; + } //each new brand must be added here if (strcmp(vendor, "Nexa") == 0){ diff --git a/telldus-core/driver/TellUsbD101/settings/TelldusSettingsConfuse.cpp b/telldus-core/driver/TellUsbD101/settings/TelldusSettingsConfuse.cpp index 583c4072..5cefbcb9 100644 --- a/telldus-core/driver/TellUsbD101/settings/TelldusSettingsConfuse.cpp +++ b/telldus-core/driver/TellUsbD101/settings/TelldusSettingsConfuse.cpp @@ -161,7 +161,7 @@ void TelldusSettings::debugLog(int debugint){ char *TelldusSettings::getStringSetting(int intDeviceId, const char* name, bool parameter) { if (d->cfg == 0) { - return ""; + return NULL; } cfg_t *cfg_device; for (int i = 0; i < cfg_size(d->cfg, "device"); ++i) { @@ -179,7 +179,7 @@ char *TelldusSettings::getStringSetting(int intDeviceId, const char* name, bool return strReturn; } } - return ""; + return NULL; } bool TelldusSettings::setStringSetting(int intDeviceId, const char* name, const char *value, bool parameter) {