From abcec4b212b7f0f81875f7a33b596893a1eddb09 Mon Sep 17 00:00:00 2001 From: Matt Vogt Date: Mon, 30 Dec 2013 22:15:48 -0800 Subject: [PATCH] [libcontacts] Do not search for empty values If we search for values without first testing that they are valid, we will match any invalid data items that have been created. --- src/seasidecache.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/seasidecache.cpp b/src/seasidecache.cpp index 37fc87e..8c11c1c 100644 --- a/src/seasidecache.cpp +++ b/src/seasidecache.cpp @@ -1346,8 +1346,12 @@ static QContactFilter filterForMergeCandidates(const QContact &contact) } // Phone number match - foreach (const QContactPhoneNumber &number, contact.details()) { - rv = rv | QContactPhoneNumber::match(number.number()); + foreach (const QContactPhoneNumber &phoneNumber, contact.details()) { + const QString number(phoneNumber.number()); + if (number.isEmpty()) + continue; + + rv = rv | QContactPhoneNumber::match(number); } // Email address match @@ -1359,6 +1363,9 @@ static QContactFilter filterForMergeCandidates(const QContact &contact) address = address.left(index); } + if (address.isEmpty()) + continue; + QContactDetailFilter filter; setDetailType(filter, QContactEmailAddress::FieldEmailAddress); filter.setMatchFlags((index > 0 ? QContactFilter::MatchStartsWith : QContactFilter::MatchExactly) | QContactFilter::MatchFixedString); @@ -1375,6 +1382,9 @@ static QContactFilter filterForMergeCandidates(const QContact &contact) uri = uri.left(index); } + if (uri.isEmpty()) + continue; + QContactDetailFilter filter; setDetailType(filter, QContactOnlineAccount::FieldAccountUri); filter.setMatchFlags((index > 0 ? QContactFilter::MatchStartsWith : QContactFilter::MatchExactly) | QContactFilter::MatchFixedString);