QNetworkCookie - ignore unparsable expires attribute
authorShane Kearns <ext-shane.2.kearns@nokia.com>
Fri, 8 Jun 2012 16:49:54 +0000 (17:49 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 26 Jun 2012 22:46:35 +0000 (00:46 +0200)
As required by RFC6265, if the date can't be parsed then the
attribute should be ignored but not the whole cookie.

Task-number: QTBUG-15794
Task-number: QTBUG-16798
Change-Id: I2ed2fbbaf2d00b194995349c24b174032a599703
Reviewed-by: Richard J. Moore <rich@kde.org>
src/network/access/qnetworkcookie.cpp

index 1dd1e25..1fdf798 100644 (file)
@@ -925,10 +925,9 @@ QList<QNetworkCookie> QNetworkCookiePrivate::parseSetCookieHeaderLine(const QByt
                     QByteArray dateString = cookieString.mid(position, end - position).trimmed();
                     position = end;
                     QDateTime dt = parseDateString(dateString.toLower());
-                    if (!dt.isValid()) {
-                        return result;
-                    }
-                    cookie.setExpirationDate(dt);
+                    if (dt.isValid())
+                        cookie.setExpirationDate(dt);
+                    //if unparsed, ignore the attribute but not the whole cookie (RFC6265 section 5.2.1)
                 } else if (field.first == "domain") {
                     QByteArray rawDomain = field.second;
                     //empty domain should be ignored (RFC6265 section 5.2.3)