]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2369. [bug] libbind: Array bounds overrun on read in bitncmp().
authorMark Andrews <marka@isc.org>
Mon, 12 May 2008 00:17:27 +0000 (00:17 +0000)
committerMark Andrews <marka@isc.org>
Mon, 12 May 2008 00:17:27 +0000 (00:17 +0000)
                        [RT #18054]

CHANGES
lib/bind/isc/bitncmp.c

diff --git a/CHANGES b/CHANGES
index ce24256a9939862124b6f37b9b77e263a2003f5b..6164c3a838969f44ce02070ea234c5250fc2f146 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2369.  [bug]           libbind: Array bounds overrun on read in bitncmp().
+                       [RT #18054]
+
 2368.   [port]          Linux: use libcap for capability management if
                         possible. [RT# 18026]
 
index 7f9a55f19e511480cbbf22b9c5c50b2788d04db8..06d3188c886fd6219c360166d31dc0990557d413 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: bitncmp.c,v 1.3 2005/04/27 04:56:35 sra Exp $";
+static const char rcsid[] = "$Id: bitncmp.c,v 1.4 2008/05/12 00:17:27 marka Exp $";
 #endif
 
 #include "port_before.h"
@@ -48,7 +48,7 @@ bitncmp(const void *l, const void *r, int n) {
 
        b = n / 8;
        x = memcmp(l, r, b);
-       if (x)
+       if (x || (n % 8) == 0)
                return (x);
 
        lb = ((const u_char *)l)[b];