summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-17 01:00:24 +0100
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2018-03-17 01:00:24 +0100
commit533b4158199f6d346af9a823ff5908a7fae9fed4 (patch)
tree01b23dd99fe2695376b6c5c923d97b074c2953f3 /src/corelib
parent27239f4fcfa6f64d60e7b79185ff413878152ebd (diff)
parent23fd4f7171ce0d509f59f42a9881de53f85644e7 (diff)
Merge remote-tracking branch 'origin/5.11' into dev
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/io/qipaddress.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/corelib/io/qipaddress.cpp b/src/corelib/io/qipaddress.cpp
index 02b12f635a..039e291b43 100644
--- a/src/corelib/io/qipaddress.cpp
+++ b/src/corelib/io/qipaddress.cpp
@@ -216,7 +216,10 @@ const QChar *parseIp6(IPv6Address &address, const QChar *begin, const QChar *end
quint64 ll = qstrtoull(ptr, &endptr, 16, &ok);
quint16 x = ll;
- if (!ok || ll != x)
+ // Reject malformed fields:
+ // - failed to parse
+ // - too many hex digits
+ if (!ok || endptr > ptr + 4)
return begin + (ptr - buffer.data());
if (*endptr == '.') {