aboutsummaryrefslogtreecommitdiff
path: root/src/Uri.cpp
diff options
context:
space:
mode:
authorRichard Walters <rwalters@digitalstirling.com>2018-07-04 20:14:38 -0700
committerRichard Walters <rwalters@digitalstirling.com>2018-07-04 20:14:38 -0700
commit8600fe34174cb1c004dea73c22384cdbfda5c7b2 (patch)
tree43d5d7f7c8ec0a04abbc4cc62652f795524e5600 /src/Uri.cpp
parentefdea1c3dc6db5744b9f1372bc300512e290824c (diff)
Fix bug in IPv6Address validation
A trailing group which is definitely not an IPv4Address needs to be counted. Detect this as the state being IN_GROUP_NOT_IPV4 after the end of the string.
Diffstat (limited to 'src/Uri.cpp')
-rw-r--r--src/Uri.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Uri.cpp b/src/Uri.cpp
index 191aafd..73bdfc3 100644
--- a/src/Uri.cpp
+++ b/src/Uri.cpp
@@ -381,8 +381,10 @@ namespace {
}
++position;
}
- // TODO: should also catch IN_GROUP_NOT_IPV4
- if (state == ValidationState::IN_GROUP_COULD_BE_IPV4) {
+ if (
+ (state == ValidationState::IN_GROUP_NOT_IPV4)
+ || (state == ValidationState::IN_GROUP_COULD_BE_IPV4)
+ ) {
// count trailing group
++numGroups;
}