From 2a8b02d1d4b1a42107a89883cad046cc869fb0d9 Mon Sep 17 00:00:00 2001 From: HanzZ Date: Mon, 4 Mar 2013 20:15:54 +0100 Subject: [PATCH] Skype: Fix crash if alias is not set --- backends/skype/skypedb.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/backends/skype/skypedb.cpp b/backends/skype/skypedb.cpp index 24500058..7e24a644 100644 --- a/backends/skype/skypedb.cpp +++ b/backends/skype/skypedb.cpp @@ -130,9 +130,18 @@ bool loadBuddies(SkypePlugin *np, const std::string &db_path, std::string &user, BEGIN(stmt); int ret2; while((ret2 = sqlite3_step(stmt)) == SQLITE_ROW) { - std::string buddy = (const char *) sqlite3_column_text(stmt, 0); - std::string alias = (const char *) sqlite3_column_text(stmt, 1); - const char *d = (const char *) sqlite3_column_text(stmt, 2); + const char *d; + d = (const char *) sqlite3_column_text(stmt, 0); + if (!d) { + continue; + } + + ret = true; + + std::string buddy = d; + d = (const char *) sqlite3_column_text(stmt, 1); + std::string alias = d ? d : buddy; + d = (const char *) sqlite3_column_text(stmt, 2); std::string mood_text = d ? d : ""; std::vector groups; @@ -145,9 +154,6 @@ bool loadBuddies(SkypePlugin *np, const std::string &db_path, std::string &user, FINALIZE_STMT(stmt); ret = false; } - else { - ret = true; - } } else { LOG4CXX_ERROR(logger, "Can't create prepared statement");