Module Name:    src
Committed By:   ryo
Date:           Thu Oct  6 06:03:06 UTC 2022

Modified Files:
        src/lib/libc/inet: inet_network.c

Log Message:
fix fixPR/57046. inet_network(3) returns INADDR_NONE when network names such as 
/x[0-9a-f][0-9a-f]/.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/inet/inet_network.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/inet/inet_network.c
diff -u src/lib/libc/inet/inet_network.c:1.4 src/lib/libc/inet/inet_network.c:1.5
--- src/lib/libc/inet/inet_network.c:1.4	Sun Jan 20 04:56:08 2008
+++ src/lib/libc/inet/inet_network.c	Thu Oct  6 06:03:06 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet_network.c,v 1.4 2008/01/20 04:56:08 christos Exp $	*/
+/*	$NetBSD: inet_network.c,v 1.5 2022/10/06 06:03:06 ryo Exp $	*/
 
 /*
  * Copyright (c) 1983, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)inet_network.c	8.1 (Berkeley) 6/4/93";
 #else
-__RCSID("$NetBSD: inet_network.c,v 1.4 2008/01/20 04:56:08 christos Exp $");
+__RCSID("$NetBSD: inet_network.c,v 1.5 2022/10/06 06:03:06 ryo Exp $");
 #endif
 #endif /* LIBC_SCCS and not lint */
 
@@ -71,10 +71,11 @@ inet_network(const char *cp)
 
 again:
 	val = 0; base = 10; digit = 0;
-	if (*cp == '0')
+	if (*cp == '0') {
 		digit = 1, base = 8, cp++;
-	if (*cp == 'x' || *cp == 'X')
-		digit = 0, base = 16, cp++;
+		if (*cp == 'x' || *cp == 'X')
+			digit = 0, base = 16, cp++;
+	}
 	while ((c = *cp) != 0) {
 		if (isdigit(c)) {
 			if (base == 8 && (c == '8' || c == '9'))

Reply via email to