summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-09-28 21:32:21 (UTC)
committer ulf69 <ulf69>2004-09-28 21:32:21 (UTC)
commit551a0bb353c7ffff4b307956a7cc7a023bf36863 (patch) (side-by-side diff)
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;
ContentLine::ContentLine()
: Entity(),
- value_(0)
+ value_(0),
+ paramType_( ParamUnknown ),
+ valueType_( ValueUnknown ),
+ entityType_( EntityUnknown )
{
paramList_.setAutoDelete( TRUE );
}
@@ -97,7 +100,10 @@ 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 );
}
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()
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);
}
///////////////////////////////////////////////////////////////
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 @@
#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
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 )
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;
}
}
@@ -639,6 +640,7 @@ QString VCardFormatImpl::readTextValue( ContentLine *cl )
return QString::fromUtf8( value->asString() );
} else {
kdDebug(5700) << "No value: " << cl->asString() << endl;
+ qDebug("No value: %s", (const char*)(cl->asString()));
return QString::null;
}
}