From mi@blue.virtual-estates.net  Tue Jul 26 04:42:17 2005
Return-Path: <mi@blue.virtual-estates.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id A242516A420
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 26 Jul 2005 04:42:17 +0000 (GMT)
	(envelope-from mi@blue.virtual-estates.net)
Received: from mail26.sea5.speakeasy.net (mail26.sea5.speakeasy.net [69.17.117.28])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 1661443D45
	for <FreeBSD-gnats-submit@freebsd.org>; Tue, 26 Jul 2005 04:42:16 +0000 (GMT)
	(envelope-from mi@blue.virtual-estates.net)
Received: (qmail 30342 invoked from network); 26 Jul 2005 04:42:16 -0000
Received: from aldan.algebra.com (HELO blue.virtual-estates.net) ([216.254.65.224])
          (envelope-sender <mi@blue.virtual-estates.net>)
          by mail26.sea5.speakeasy.net (qmail-ldap-1.03) with AES256-SHA encrypted SMTP
          for <FreeBSD-gnats-submit@freebsd.org>; 26 Jul 2005 04:42:16 -0000
Received: from blue.virtual-estates.net (blue [127.0.0.1])
	by blue.virtual-estates.net (8.13.3/8.13.3) with ESMTP id j6Q4gDob028352;
	Tue, 26 Jul 2005 00:42:13 -0400 (EDT)
	(envelope-from mi@blue.virtual-estates.net)
Received: (from mi@localhost)
	by blue.virtual-estates.net (8.13.3/8.13.3/Submit) id j6Q4gDHh028351;
	Tue, 26 Jul 2005 00:42:13 -0400 (EDT)
	(envelope-from mi)
Message-Id: <200507260442.j6Q4gDHh028351@blue.virtual-estates.net>
Date: Tue, 26 Jul 2005 00:42:13 -0400 (EDT)
From: "Mikhail T." <mi@aldan.algebra.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc: standards@freebsd.org
Subject: inet_pton(AF_INET6, ....) seems too permissive
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         84106
>Category:       bin
>Synopsis:       inet_pton(AF_INET6, ....) seems too permissive
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    ume
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jul 26 04:50:05 GMT 2005
>Closed-Date:    Fri Jul 29 19:21:05 GMT 2005
>Last-Modified:  Fri Jul 29 19:21:05 GMT 2005
>Originator:     Mikhail T.
>Release:        FreeBSD 5.4-STABLE amd64
>Organization:
Virtual Estates, Inc.
>Environment:
System: FreeBSD blue.virtual-estates.net 5.4-STABLE FreeBSD 5.4-STABLE #7: Thu Jul 21 00:06:41 EDT 2005 root@blue.virtual-estates.net:/var/obj/var/src/sys/SILVER amd64


>Description:
	NSPR's addtest pointed me at this problem -- our inet_pton
	gladly accepts invalid IPv6 addresses like:

		1:2:3:4:5:6:7::8
	or
		1:2:3:4:5:6::7:8

>How-To-Repeat:

	Compile the program below and run as:
		./inet_pton6_test 1:2:3:4:5:6:7::8 1:2:3:4:5:6::7:8

	inet_pton should reject (return 0) both of these addresses.

/*------------------ Cut here ----------------------------------------*/
#include <err.h>
#include <stdio.h>
#include <sysexits.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int
main(int argc, char *argv[])
{
	int exit_code = 0;

	if (argc-- == 1)
		errx(EX_USAGE, "need at least one argument");

	do {
		struct in_addr	dummy;
		const char *host = *++argv;
		int	result;

		result = inet_pton(AF_INET6, host, &dummy);
		switch(result) {
		case 1:
			printf("%s seems Ok\n", host);
			break;
		case 0:
			printf("%s seems invalid\n", host);
			exit_code = 1;
			break;
		case -1:
			perror(host);
			break;
		default:
			warn("unexpected result %d to `%s'", result, host);
			exit_code = 2;
			break;
		}
	} while (--argc);

	return exit_code;
}
/*------------------ Cut here ----------------------------------------*/

>Fix:
>Release-Note:
>Audit-Trail:

From: Hajimu UMEMOTO <ume@freebsd.org>
To: "Mikhail T." <mi@aldan.algebra.com>
Cc: FreeBSD-gnats-submit@freebsd.org, standards@freebsd.org
Subject: Re: bin/84106: inet_pton(AF_INET6, ....) seems too permissive
Date: Wed, 27 Jul 2005 19:42:38 +0900

 Hi,
 
 >>>>> On Tue, 26 Jul 2005 00:42:13 -0400 (EDT)
 >>>>> "Mikhail T." <mi@aldan.algebra.com> said:
 
 mi> 	NSPR's addtest pointed me at this problem -- our inet_pton
 mi> 	gladly accepts invalid IPv6 addresses like:
 
 mi> 		1:2:3:4:5:6:7::8
 mi> 	or
 mi> 		1:2:3:4:5:6::7:8
 
 mi> 	inet_pton should reject (return 0) both of these addresses.
 
 No, I don't think so.  I cannot see such restriction in RFC 2373 2.2
 Text Representation of Addresses.  Isn't it a problem of NSPR's
 addtest?
 
 Sincerely,
 
 --
 Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
 ume@mahoroba.org  ume@{,jp.}FreeBSD.org
 http://www.imasy.org/~ume/

From: Mikhail Teterin <mi+kde@aldan.algebra.com>
To: Hajimu UMEMOTO <ume@freebsd.org>
Cc: "Mikhail T." <mi@aldan.algebra.com>, FreeBSD-gnats-submit@freebsd.org,
        standards@freebsd.org
Subject: Re: bin/84106: inet_pton(AF_INET6, ....) seems too permissive
Date: Wed, 27 Jul 2005 09:03:27 -0400

 On Wednesday 27 July 2005 06:42 am, Hajimu UMEMOTO wrote:
 = mi> 		1:2:3:4:5:6:7::8
 = mi> 	or
 = mi> 		1:2:3:4:5:6::7:8
 = mi> 	inet_pton should reject (return 0) both of these addresses.
  
 = No, I don't think so.  I cannot see such restriction in RFC 2373 2.2
 = Text Representation of Addresses.  Isn't it a problem of NSPR's
 = addtest?
 
 I thought, 8 positions is the most an IPv6 address can have. This
 strings have 9, don't they?
 
 I don't know :-) But the NSPR maintainer thinks, this is a bug:
 
 	https://bugzilla.mozilla.org/show_bug.cgi?id=301987
 
 Thanks!
 
 	-mi
 
 

From: Hajimu UMEMOTO <ume@freebsd.org>
To: Mikhail Teterin <mi+kde@aldan.algebra.com>
Cc: FreeBSD-gnats-submit@freebsd.org, standards@freebsd.org
Subject: Re: bin/84106: inet_pton(AF_INET6, ....) seems too permissive
Date: Wed, 27 Jul 2005 23:42:57 +0900

 Hi,
 
 >>>>> On Wed, 27 Jul 2005 09:03:27 -0400
 >>>>> Mikhail Teterin <mi+kde@aldan.algebra.com> said:
 
 mi+kde> On Wednesday 27 July 2005 06:42 am, Hajimu UMEMOTO wrote:
 mi+kde> = mi> 		1:2:3:4:5:6:7::8
 mi+kde> = mi> 	or
 mi+kde> = mi> 		1:2:3:4:5:6::7:8
 mi+kde> = mi> 	inet_pton should reject (return 0) both of these addresses.
  
 mi+kde> = No, I don't think so.  I cannot see such restriction in RFC 2373 2.2
 mi+kde> = Text Representation of Addresses.  Isn't it a problem of NSPR's
 mi+kde> = addtest?
 
 mi+kde> I thought, 8 positions is the most an IPv6 address can have. This
 mi+kde> strings have 9, don't they?
 
 Ah, yes.  I didn't understand your point, correctly.
 Since it seems that this problem was fixed in BIND9's inet_pton.c,
 I've just commited the fix which was taken from it:
 
 http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/net/inet_pton.c.diff?r1=1.11&r2=1.12
 
 Please try it, and let me know the result.
 
 Sincerely,
 
 --
 Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
 ume@mahoroba.org  ume@{,jp.}FreeBSD.org
 http://www.imasy.org/~ume/

From: Mikhail Teterin <Mikhail.Teterin@murex.com>
To: Hajimu UMEMOTO <ume@freebsd.org>
Cc: Mikhail Teterin <mi+kde@aldan.algebra.com>,
        FreeBSD-gnats-submit@freebsd.org, standards@freebsd.org
Subject: Re: bin/84106: inet_pton(AF_INET6, ....) seems too permissive
Date: Wed, 27 Jul 2005 12:07:32 -0400

 > Please try it, and let me know the result.
 
 Hajimu! Thank you very much for the prompt reaction.
 
 	http://www.freebsd.org/cgi/query-pr.cgi?pr=84106
 
 I attached the simple program to this bug report. It is harder for me to test 
 your fix, as I'll need to rebuild -lc first :-)
 
 Please, consider propagating this into 6.0 quickly, so that the fix is in the 
 first release. Thanks!
 
 	-mi

From: Hajimu UMEMOTO <ume@freebsd.org>
To: Mikhail Teterin <Mikhail.Teterin@murex.com>
Cc: FreeBSD-gnats-submit@freebsd.org, standards@freebsd.org
Subject: Re: bin/84106: inet_pton(AF_INET6, ....) seems too permissive
Date: Thu, 28 Jul 2005 01:52:41 +0900

 Hi,
 
 >>>>> On Wed, 27 Jul 2005 12:07:32 -0400
 >>>>> Mikhail Teterin <Mikhail.Teterin@murex.com> said:
 
 > Please try it, and let me know the result.
 
 Mikhail> Hajimu! Thank you very much for the prompt reaction.
 
 Mikhail> 	http://www.freebsd.org/cgi/query-pr.cgi?pr=84106
 
 Mikhail> I attached the simple program to this bug report. It is harder for me to test 
 Mikhail> your fix, as I'll need to rebuild -lc first :-)
 
 Of course, I did test it by myself before committing it. :-)
 
 Mikhail> Please, consider propagating this into 6.0 quickly, so that the fix is in the 
 Mikhail> first release. Thanks!
 
 I have a plan to do MFC to RELENG_6, RELENG_5 and RELENG_4 to be in
 time for 6.0-RELEASE.
 
 Sincerely,
 
 --
 Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
 ume@mahoroba.org  ume@{,jp.}FreeBSD.org
 http://www.imasy.org/~ume/
State-Changed-From-To: open->closed 
State-Changed-By: ume 
State-Changed-When: Fri Jul 29 19:18:46 GMT 2005 
State-Changed-Why:  
I did MFC it into RELENG_6, RELENG_5 and RELENG_4. 
Thank you for your report. 


Responsible-Changed-From-To: freebsd-bugs->ume 
Responsible-Changed-By: ume 
Responsible-Changed-When: Fri Jul 29 19:18:46 GMT 2005 
Responsible-Changed-Why:  
I did MFC it into RELENG_6, RELENG_5 and RELENG_4. 
Thank you for your report. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=84106 
>Unformatted:
