Обсуждение: BUG #14198: IPv6 address validation broken
VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJz aXRlOgoKQnVnIHJlZmVyZW5jZTogICAgICAxNDE5OApMb2dnZWQgYnk6ICAg ICAgICAgIFN0ZWZhbiBLYWx0ZW5icnVubmVyCkVtYWlsIGFkZHJlc3M6ICAg ICAgc3RlZmFuQGthbHRlbmJydW5uZXIuY2MKUG9zdGdyZVNRTCB2ZXJzaW9u OiA5LjUuMwpPcGVyYXRpbmcgc3lzdGVtOiAgIERlYmlhbiBMaW51eApEZXNj cmlwdGlvbjogICAgICAgIAoKSGkgYWxsIQ0KDQoNCklQdjYgYWRkcmVzcyB2 YWxpZGF0aW9uIHNlZW1zIHRvIGJlIGEgInRhZCIgYnJva2VuIGluIGFsbCBj dXJyZW50CnJlbGVhc2VzOg0KDQoNCm1hc3Rlcm1pbmQ9IyBzZWxlY3QgJzk5 Ojk5Ojk5Ojk5Ojo5OTo5OTo5OTo5OTo5OTp6eic6OmluZXQ7DQppbmV0DQo6 Oi8wDQooMSByb3cpDQptYXN0ZXJtaW5kPSMgc2VsZWN0ICc5OTo5OTo5OTo5 OTo6OTk6OTk6OTk6OTk6YWE6Ojk5Jzo6aW5ldDsNCmluZXQNCjo6LzANCigx IHJvdykNCm1hc3Rlcm1pbmQ9IyBzZWxlY3QgJzk5Ojk5Ojk5Ojk5Ojo5OTo5 OTo5OTo5OTo5OTo6OTknOjppbmV0Ow0KaW5ldA0KOjovMA0KKDEgcm93KQoK
stefan@kaltenbrunner.cc writes:
> IPv6 address validation seems to be a "tad" broken in all current
> releases:
Hmm, looks like we need this at inet_net_pton.c:499:
else if (*src == '\0')
goto enoent;
if (tp + NS_INT16SZ > endp)
- return (0);
+ goto enoent;
*tp++ = (u_char) (val >> 8) & 0xff;
*tp++ = (u_char) val & 0xff;
saw_xdigit = 0;
A bit of googling suggests that this is equally broken in assorted
BSD distributions, which is likely where we got the code from
originally. I wonder who we can report it to?
regards, tom lane
On 16.06.2016 23:05, Tom Lane wrote: > stefan@kaltenbrunner.cc writes: >> IPv6 address validation seems to be a "tad" broken in all current >> releases: > > Hmm, looks like we need this at inet_net_pton.c:499: > > else if (*src == '\0') > goto enoent; > if (tp + NS_INT16SZ > endp) > - return (0); > + goto enoent; > *tp++ = (u_char) (val >> 8) & 0xff; > *tp++ = (u_char) val & 0xff; > saw_xdigit = 0; > > A bit of googling suggests that this is equally broken in assorted > BSD distributions, which is likely where we got the code from > originally. I wonder who we can report it to? For FreeBSD there is a bugtracker: https://bugs.freebsd.org/bugzilla/enter_bug.cgi If you are unsure what to fill in, i can do this for you. Greetings, Torsten