[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kphotoalbum] XMLDB: Fix crash when member group category doesn't exist.
From:       Johannes Zarl <isilmendil () isilme ! lupus ! uberspace ! de>
Date:       2013-04-30 23:22:00
Message-ID: 20130430232200.45A4EA6046 () git ! kde ! org
[Download RAW message or body]

Git commit 2abcb1cbe6a5a2d6b8d9da1344bd80dcf1f550b6 by Johannes Zarl.
Committed on 01/05/2013 at 00:58.
Pushed by johanneszarl into branch 'master'.

Fix crash when member group category doesn't exist.

When the category of the member-group does not exist, a warning is
printed on the console and a matching category is created.

CCBUG: 319135

M  +7    -0    XMLDB/FileReader.cpp

http://commits.kde.org/kphotoalbum/2abcb1cbe6a5a2d6b8d9da1344bd80dcf1f550b6

diff --git a/XMLDB/FileReader.cpp b/XMLDB/FileReader.cpp
index 62f10e6..b1da9a6 100644
--- a/XMLDB/FileReader.cpp
+++ b/XMLDB/FileReader.cpp
@@ -34,6 +34,7 @@
 #include <QHash>
 #include <QXmlStreamReader>
 #include "CompressFileInfo.h"
+#include <QDebug>
 
 void XMLDB::FileReader::read( const QString& configFile )
 {
@@ -249,6 +250,12 @@ void XMLDB::FileReader::loadMemberGroups( ReaderPtr reader )
                 QStringList members = reader->attribute(_members_).split( \
                QString::fromLatin1( "," ), QString::SkipEmptyParts );
                 for( QStringList::Iterator membersIt = members.begin(); membersIt != \
                members.end(); ++membersIt ) {
                     DB::CategoryPtr catPtr = \
_db->_categoryCollection.categoryForName( category ); +                    if \
(catPtr.isNull()) +                    { // category was not declared in "Categories"
+                        qWarning() << "File corruption in index.xml. Inserting \
missing category: " << category; +                        catPtr = new \
XMLCategory(category, QString::fromUtf8("dialog-warning"), DB::Category::TreeView, \
32, false); +                        _db->_categoryCollection.addCategory( catPtr );
+                    }
                     XMLCategory* cat = static_cast<XMLCategory*>( catPtr.data() );
                     QString member = cat->nameForId( (*membersIt).toInt() );
                     Q_ASSERT( !member.isNull() );


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic