]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2723. [bug] isc_base64_totext() didn't always mark regions of
authorEvan Hunt <each@isc.org>
Wed, 21 Oct 2009 01:23:19 +0000 (01:23 +0000)
committerEvan Hunt <each@isc.org>
Wed, 21 Oct 2009 01:23:19 +0000 (01:23 +0000)
memory as fully consumed after conversion.  [RT #20445]

CHANGES
lib/isc/base64.c

diff --git a/CHANGES b/CHANGES
index 7ce73e794fca46f2de69e6edbb7067c21a15b986..c2d64530b4b35e9a24406e447692ae6c076dde8f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2723.  [bug]           isc_base64_totext() didn't always mark regions of
+                       memory as fully consumed after conversion.  [RT #20445]
+
 2722.  [bug]           Ensure that the memory associated with the name of
                        a node in a rbt tree is not altered during the life
                        of the node. [RT #20431]
index 13ed6b5c5c170af346359046dd4240965497891b..71fca2704ef6941f8e2aa0fc6948adeefd1eea6c 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: base64.c,v 1.32 2007/06/19 23:47:17 tbox Exp $ */
+/* $Id: base64.c,v 1.32.128.1 2009/10/21 01:23:19 each Exp $ */
 
 /*! \file */
 
@@ -85,11 +85,13 @@ isc_base64_totext(isc_region_t *source, int wordlength,
                buf[2] = base64[((source->base[1]<<2)&0x3c)];
                buf[3] = '=';
                RETERR(str_totext(buf, target));
+               isc_region_consume(source, 2);
        } else if (source->length == 1) {
                buf[0] = base64[(source->base[0]>>2)&0x3f];
                buf[1] = base64[((source->base[0]<<4)&0x30)];
                buf[2] = buf[3] = '=';
                RETERR(str_totext(buf, target));
+               isc_region_consume(source, 1);
        }
        return (ISC_R_SUCCESS);
 }