author | ulf69 <ulf69> | 2004-09-28 21:32:21 (UTC) |
---|---|---|
committer | ulf69 <ulf69> | 2004-09-28 21:32:21 (UTC) |
commit | 551a0bb353c7ffff4b307956a7cc7a023bf36863 (patch) (side-by-side diff) | |
tree | 99a2f40f6c510f8ea2f482d481f2051bd9f2227d /kabc | |
parent | 57c00cdf5002e90603e0e1cfb5ac5c2c8bf19fe7 (diff) | |
download | kdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.zip kdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.tar.gz kdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.tar.bz2 |
fixed a potential crash when loading adresses from any adressbook file.
-rw-r--r-- | kabc/vcard/ContentLine.cpp | 10 | ||||
-rw-r--r-- | kabc/vcard/VCardv.cpp | 12 | ||||
-rw-r--r-- | kabc/vcard/include/VCardDefines.h | 3 | ||||
-rw-r--r-- | kabc/vcardformatimpl.cpp | 2 |
4 files changed, 20 insertions, 7 deletions
diff --git a/kabc/vcard/ContentLine.cpp b/kabc/vcard/ContentLine.cpp index 0fb5b5d..f7e04a9 100644 --- a/kabc/vcard/ContentLine.cpp +++ b/kabc/vcard/ContentLine.cpp @@ -63,13 +63,16 @@ #include <VCardDefines.h> using namespace VCARD; ContentLine::ContentLine() : Entity(), - value_(0) + value_(0), + paramType_( ParamUnknown ), + valueType_( ValueUnknown ), + entityType_( EntityUnknown ) { paramList_.setAutoDelete( TRUE ); } ContentLine::ContentLine(const ContentLine & x) : Entity(x), @@ -94,13 +97,16 @@ ContentLine::ContentLine(const ContentLine & x) } } ContentLine::ContentLine(const QCString & s) : Entity(s), - value_(0) + value_(0), + paramType_( ParamUnknown ), + valueType_( ValueUnknown ), + entityType_( EntityUnknown ) { paramList_.setAutoDelete( TRUE ); } ContentLine & ContentLine::operator = (ContentLine & x) diff --git a/kabc/vcard/VCardv.cpp b/kabc/vcard/VCardv.cpp index 391a69e..d19a004 100644 --- a/kabc/vcard/VCardv.cpp +++ b/kabc/vcard/VCardv.cpp @@ -185,19 +185,23 @@ VCard::_parse() refolded.append(cur); } QStrListIterator it2(refolded); for (; it2.current(); ++it2) { - - vDebug("New contentline using \"" + QCString(it2.current()) + "\""); + vDebug("New contentline using \"" + QCString(it2.current()) + "\""); ContentLine * cl = new ContentLine(it2.current()); cl->parse(); - - contentLineList_.append(cl); + if (cl->value() == 0) + { + qDebug("Content line could not be parsed. Discarded: %s" + QCString(it2.current())); + delete cl; + } + else + contentLineList_.append(cl); } /////////////////////////////////////////////////////////////// // LAST LINE split = endLine.find(':'); diff --git a/kabc/vcard/include/VCardDefines.h b/kabc/vcard/include/VCardDefines.h index dd38ae2..557410f 100644 --- a/kabc/vcard/include/VCardDefines.h +++ b/kabc/vcard/include/VCardDefines.h @@ -24,13 +24,14 @@ #ifndef VCARD_DEFINES_H #define VCARD_DEFINES_H #include <kdebug.h> #ifdef VCARD_DEBUG -#define vDebug(a) kdDebug(5710) << a << endl; +//US #define vDebug(a) kdDebug(5710) << a << endl; +#define vDebug(a) qDebug(a); #else #define vDebug(a) #endif #if 0 #ifndef NDEBUG diff --git a/kabc/vcardformatimpl.cpp b/kabc/vcardformatimpl.cpp index 2d6eb3d..1bf2cde 100644 --- a/kabc/vcardformatimpl.cpp +++ b/kabc/vcardformatimpl.cpp @@ -258,12 +258,13 @@ bool VCardFormatImpl::loadAddressee( Addressee& addressee, VCard *v ) addressee.setSound( readSoundValue( cl, addressee ) ); break; default: kdDebug(5700) << "VCardFormat::load(): Unsupported entity: " << int( type ) << ": " << cl->asString() << endl; + qDebug("VCardFormat::load(): Unsupported entity: %i: %s ", int(type), (const char*)cl->asString()); break; } } for( cl = contentLines.first(); cl; cl = contentLines.next() ) { EntityType type = cl->entityType(); @@ -636,12 +637,13 @@ QString VCardFormatImpl::readTextValue( ContentLine *cl ) { VCARD::Value *value = cl->value(); if ( value ) { return QString::fromUtf8( value->asString() ); } else { kdDebug(5700) << "No value: " << cl->asString() << endl; + qDebug("No value: %s", (const char*)(cl->asString())); return QString::null; } } QDate VCardFormatImpl::readDateValue( ContentLine *cl ) { |