summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-09-28 21:32:21 (UTC)
committer ulf69 <ulf69>2004-09-28 21:32:21 (UTC)
commit551a0bb353c7ffff4b307956a7cc7a023bf36863 (patch) (unidiff)
tree99a2f40f6c510f8ea2f482d481f2051bd9f2227d
parent57c00cdf5002e90603e0e1cfb5ac5c2c8bf19fe7 (diff)
downloadkdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.zip
kdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.tar.gz
kdepimpi-551a0bb353c7ffff4b307956a7cc7a023bf36863.tar.bz2
fixed a potential crash when loading adresses from any adressbook file.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/vcard/ContentLine.cpp10
-rw-r--r--kabc/vcard/VCardv.cpp12
-rw-r--r--kabc/vcard/include/VCardDefines.h3
-rw-r--r--kabc/vcardformatimpl.cpp2
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
@@ -66,7 +66,10 @@ using namespace VCARD;
66 66
67ContentLine::ContentLine() 67ContentLine::ContentLine()
68 :Entity(), 68 :Entity(),
69 value_(0) 69 value_(0),
70 paramType_( ParamUnknown ),
71 valueType_( ValueUnknown ),
72 entityType_( EntityUnknown )
70{ 73{
71 paramList_.setAutoDelete( TRUE ); 74 paramList_.setAutoDelete( TRUE );
72} 75}
@@ -97,7 +100,10 @@ ContentLine::ContentLine(const ContentLine & x)
97 100
98ContentLine::ContentLine(const QCString & s) 101ContentLine::ContentLine(const QCString & s)
99 :Entity(s), 102 :Entity(s),
100 value_(0) 103 value_(0),
104 paramType_( ParamUnknown ),
105 valueType_( ValueUnknown ),
106 entityType_( EntityUnknown )
101{ 107{
102 paramList_.setAutoDelete( TRUE ); 108 paramList_.setAutoDelete( TRUE );
103} 109}
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
@@ -188,13 +188,17 @@ VCard::_parse()
188 QStrListIterator it2(refolded); 188 QStrListIterator it2(refolded);
189 189
190 for (; it2.current(); ++it2) { 190 for (; it2.current(); ++it2) {
191 191 vDebug("New contentline using \"" + QCString(it2.current()) + "\"");
192 vDebug("New contentline using \"" + QCString(it2.current()) + "\"");
193 ContentLine * cl = new ContentLine(it2.current()); 192 ContentLine * cl = new ContentLine(it2.current());
194 193
195 cl->parse(); 194 cl->parse();
196 195 if (cl->value() == 0)
197 contentLineList_.append(cl); 196 {
197 qDebug("Content line could not be parsed. Discarded: %s" + QCString(it2.current()));
198 delete cl;
199 }
200 else
201 contentLineList_.append(cl);
198 } 202 }
199 203
200 /////////////////////////////////////////////////////////////// 204 ///////////////////////////////////////////////////////////////
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
@@ -27,7 +27,8 @@
27#include <kdebug.h> 27#include <kdebug.h>
28 28
29#ifdef VCARD_DEBUG 29#ifdef VCARD_DEBUG
30#define vDebug(a) kdDebug(5710) << a << endl; 30//US #define vDebug(a) kdDebug(5710) << a << endl;
31#define vDebug(a) qDebug(a);
31#else 32#else
32#define vDebug(a) 33#define vDebug(a)
33#endif 34#endif
diff --git a/kabc/vcardformatimpl.cpp b/kabc/vcardformatimpl.cpp
index 2d6eb3d..1bf2cde 100644
--- a/kabc/vcardformatimpl.cpp
+++ b/kabc/vcardformatimpl.cpp
@@ -261,6 +261,7 @@ bool VCardFormatImpl::loadAddressee( Addressee& addressee, VCard *v )
261 default: 261 default:
262 kdDebug(5700) << "VCardFormat::load(): Unsupported entity: " 262 kdDebug(5700) << "VCardFormat::load(): Unsupported entity: "
263 << int( type ) << ": " << cl->asString() << endl; 263 << int( type ) << ": " << cl->asString() << endl;
264 qDebug("VCardFormat::load(): Unsupported entity: %i: %s ", int(type), (const char*)cl->asString());
264 break; 265 break;
265 } 266 }
266 } 267 }
@@ -639,6 +640,7 @@ QString VCardFormatImpl::readTextValue( ContentLine *cl )
639 return QString::fromUtf8( value->asString() ); 640 return QString::fromUtf8( value->asString() );
640 } else { 641 } else {
641 kdDebug(5700) << "No value: " << cl->asString() << endl; 642 kdDebug(5700) << "No value: " << cl->asString() << endl;
643 qDebug("No value: %s", (const char*)(cl->asString()));
642 return QString::null; 644 return QString::null;
643 } 645 }
644} 646}