From b627e6177f20b7369a9d73829e7a846b21dcb939 2012-03-11 11:31:02 From: HanzZ Date: 2012-03-11 11:31:02 Subject: [PATCH] Fixed crash in skype handleMemoryUsage --- diff --git a/backends/skype/main.cpp b/backends/skype/main.cpp index e8a56bafe8d1b00f1ba7280374613032fd2aa0ab..0e849f4c7601de0d4713634661545a589a841547 100644 --- a/backends/skype/main.cpp +++ b/backends/skype/main.cpp @@ -129,7 +129,9 @@ class SpectrumNetworkPlugin : public NetworkPlugin { void handleLoginRequest(const std::string &user, const std::string &legacyName, const std::string &password) { std::string name = legacyName; - name = name.substr(name.find(".") + 1); + if (name.find("skype.") == 0 || name.find("prpl-skype.") == 0) { + name = name.substr(name.find(".") + 1); + } LOG4CXX_INFO(logger, "Creating account with name '" << name << "'"); Skype *skype = new Skype(user, name, password); @@ -144,11 +146,13 @@ class SpectrumNetworkPlugin : public NetworkPlugin { shared = 0; for(std::map::const_iterator it = m_sessions.begin(); it != m_sessions.end(); it++) { Skype *skype = it->second; - double r; - double s; - process_mem_usage(s, r, skype->getPid()); - res += r; - shared += s; + if (skype) { + double r; + double s; + process_mem_usage(s, r, skype->getPid()); + res += r; + shared += s; + } } }