about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/posix/getaddrinfo.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 58dfee870f..e5b24f6805 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-09-26  Ulrich Drepper  <drepper@redhat.com>
 
+	[BZ #524]
+	* sysdeps/posix/getaddrinfo.c (match_prefix): Fix matching loop of
+	number of bits is multiple of 8.
+	Patch by Fredrik Tolf <fredrik@dolda2000.com>.
+
 	[BZ #516]
 	* elf/dl-load.c: Report failed loading due to ELF class mismatch
 	with better words.
diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
index d97b95b5e0..4db98d942c 100644
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -1266,7 +1266,7 @@ match_prefix (const struct sockaddr_storage *ss, const struct prefixlist *list,
       uint8_t *mask = list[idx].prefix.s6_addr;
       uint8_t *val = in6->sin6_addr.s6_addr;
 
-      while (bits > 8)
+      while (bits >= 8)
 	{
 	  if (*mask != *val)
 	    break;