summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qurl.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2016-06-30 15:48:52 -0700
committerThiago Macieira <thiago.macieira@intel.com>2016-07-02 16:36:50 +0000
commit4f3eb6617331ba2634206064512ae68a4fbd793e (patch)
tree1be5a5e73d54a299b975c38bc5a7c5e01afca4a1 /src/corelib/io/qurl.cpp
parentcf9b445ed471451cd581962887c6fd503cd2bf25 (diff)
QUrl: Test that we do correctly accept valid schemes
... and reject invalid ones. There was one error: we accepted schemes starting with pluses, dashes and dots. Change-Id: Ie585843cfb684bc3b6e3fffd145cfe12227ec4ad Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/corelib/io/qurl.cpp')
-rw-r--r--src/corelib/io/qurl.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index fb2f4ba918..2672de24f2 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -978,10 +978,12 @@ inline bool QUrlPrivate::setScheme(const QString &value, int len, bool doSetErro
needsLowercasing = i;
continue;
}
- if (p[i] >= '0' && p[i] <= '9' && i > 0)
- continue;
- if (p[i] == '+' || p[i] == '-' || p[i] == '.')
- continue;
+ if (i) {
+ if (p[i] >= '0' && p[i] <= '9')
+ continue;
+ if (p[i] == '+' || p[i] == '-' || p[i] == '.')
+ continue;
+ }
// found something else
// don't call setError needlessly: