Index: kioslave/http/kcookiejar/kcookiejar.cpp =================================================================== --- kioslave/http/kcookiejar/kcookiejar.cpp (revision 844829) +++ kioslave/http/kcookiejar/kcookiejar.cpp (revision 844830) @@ -1366,16 +1366,18 @@ if ((line[0] == '#') || (line[0] == '[')) continue; - const char *host( parseField(line) ); - const char *domain( parseField(line) ); - const char *path( parseField(line) ); - const char *expStr( parseField(line) ); - if (!expStr) continue; - int expDate = (time_t) strtoul(expStr, 0, 10); - const char *verStr( parseField(line) ); - if (!verStr) continue; - int protVer = (time_t) strtoul(verStr, 0, 10); - const char *name( parseField(line) ); + const QString host = QString::fromLatin1( parseField(line) ); + const QString domain = QString::fromLatin1( parseField(line) ); + if (host.isEmpty() && domain.isEmpty()) + continue; + const QString path = QString::fromLatin1( parseField(line) ); + const QString expStr = QString::fromLatin1( parseField(line) ); + if (expStr.isEmpty()) continue; + const int expDate = expStr.toInt(); + const QString verStr = QString::fromLatin1( parseField(line) ); + if (verStr.isEmpty()) continue; + int protVer = verStr.toInt(); + QString name = QString::fromLatin1( parseField(line) ); bool keepQuotes = false; bool secure = false; bool httpOnly = false; @@ -1412,11 +1414,11 @@ if ((expDate == 0) || (expDate < curTime)) continue; - KHttpCookie cookie(QString::fromLatin1(host), - QString::fromLatin1(domain), - QString::fromLatin1(path), - QString::fromLatin1(name), - QString::fromLatin1(value), + KHttpCookie cookie(host, + domain, + path, + name, + value, expDate, protVer, secure, httpOnly, explicitPath); addCookie(cookie); Index: kioslave/http/kcookiejar/tests/kcookiejartest.cpp =================================================================== --- kioslave/http/kcookiejar/tests/kcookiejartest.cpp (revision 844829) +++ kioslave/http/kcookiejar/tests/kcookiejartest.cpp (revision 844830) @@ -80,6 +80,13 @@ QString file = KStandardDirs::locateLocal("config", "kcookiejar-testcookies"); QFile::remove(file); jar->saveCookies(file); + + // Add an empty domain to the cookies file, just for testing robustness + QFile f(file); + f.open(QIODevice::Append); + f.write("[]\n \"\" \"/\" 1584320400 0 h 4 x\n"); + f.close(); + delete jar; jar = new KCookieJar(); clearConfig();