From 0383378385a4b7d1aaf4338b5ccad5592caf691a Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Mon, 18 Jun 2012 03:14:09 -0400 Subject: [PATCH 1/2] Fix cases where JID could be reduced to nothing --- src/libtomahawk/network/Connection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libtomahawk/network/Connection.cpp b/src/libtomahawk/network/Connection.cpp index bdc52646c..592ce5170 100644 --- a/src/libtomahawk/network/Connection.cpp +++ b/src/libtomahawk/network/Connection.cpp @@ -200,7 +200,7 @@ Connection::checkACL() } QString nodeid = property( "nodeid" ).toString(); - QString bareName = name().left( name().indexOf( "/" ) ); + QString bareName = name().contains( '/' ) ? name().left( name().indexOf( "/" ) ) : name(); tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Checking ACL for" << name(); connect( ACLRegistry::instance(), SIGNAL( aclResult( QString, QString, ACLRegistry::ACL ) ), this, SLOT( checkACLResult( QString, QString, ACLRegistry::ACL ) ), Qt::QueuedConnection ); QMetaObject::invokeMethod( ACLRegistry::instance(), "isAuthorizedUser", Qt::QueuedConnection, Q_ARG( QString, nodeid ), Q_ARG( QString, bareName ), Q_ARG( ACLRegistry::ACL, ACLRegistry::NotFound ) ); From b88be39f54ca446a3712bebaec63735ad21278e0 Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Mon, 18 Jun 2012 03:35:24 -0400 Subject: [PATCH 2/2] Fix checking result of ACL against name --- src/libtomahawk/network/Connection.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/network/Connection.cpp b/src/libtomahawk/network/Connection.cpp index 592ce5170..dde0aab6e 100644 --- a/src/libtomahawk/network/Connection.cpp +++ b/src/libtomahawk/network/Connection.cpp @@ -194,7 +194,7 @@ Connection::checkACL() { if ( !property( "nodeid" ).isValid() ) { - tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "Not checking ACL, nodeid is empty"; + tLog() << Q_FUNC_INFO << "Not checking ACL, nodeid is empty"; QTimer::singleShot( 0, this, SLOT( doSetup() ) ); return; } @@ -210,8 +210,12 @@ Connection::checkACL() void Connection::checkACLResult( const QString &nodeid, const QString &username, ACLRegistry::ACL peerStatus ) { - if ( nodeid != property( "nodeid" ).toString() || username != name() ) + QString bareName = name().contains( '/' ) ? name().left( name().indexOf( "/" ) ) : name(); + if ( nodeid != property( "nodeid" ).toString() || username != bareName ) + { + tLog() << Q_FUNC_INFO << "nodeid not ours, or username not our barename"; return; + } disconnect( ACLRegistry::instance(), SIGNAL( aclResult( QString, QString, ACLRegistry::ACL ) ) ); tDebug( LOGVERBOSE ) << Q_FUNC_INFO << "ACL status is" << peerStatus;