]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2718. [bug] The space calculations in opensslrsa_todns() were
authorMark Andrews <marka@isc.org>
Tue, 20 Oct 2009 03:06:32 +0000 (03:06 +0000)
committerMark Andrews <marka@isc.org>
Tue, 20 Oct 2009 03:06:32 +0000 (03:06 +0000)
                        incorrect. [RT #20394]

CHANGES
lib/dns/opensslrsa_link.c

diff --git a/CHANGES b/CHANGES
index ddd40fab78abb2052ba2d7d419bef5b98cfde174..c79121bca96766ecf017cac8953122be0870e4a7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2718.  [bug]           The space calculations in opensslrsa_todns() were
+                       incorrect. [RT #20394]
+
 2716.  [bug]           nslookup debug mode didn't return the ttl. [RT #20414]
 
 2715.  [bug]           Require OpenSSL support to be explicitly disabled.
index a3544a98006e8a350b590b9c16bc3742769c5a4e..63bacb09632015321fdb9b17c8d7b48d82154de3 100644 (file)
@@ -17,7 +17,7 @@
 
 /*
  * Principal Author: Brian Wellington
- * $Id: opensslrsa_link.c,v 1.16.128.3 2009/01/19 00:01:10 marka Exp $
+ * $Id: opensslrsa_link.c,v 1.16.128.4 2009/10/20 03:06:32 marka Exp $
  */
 #ifdef OPENSSL
 
@@ -372,19 +372,20 @@ opensslrsa_todns(const dst_key_t *key, isc_buffer_t *data) {
                if (r.length < 1)
                        return (ISC_R_NOSPACE);
                isc_buffer_putuint8(data, (isc_uint8_t) e_bytes);
+               isc_region_consume(&r, 1);
        } else {
                if (r.length < 3)
                        return (ISC_R_NOSPACE);
                isc_buffer_putuint8(data, 0);
                isc_buffer_putuint16(data, (isc_uint16_t) e_bytes);
+               isc_region_consume(&r, 3);
        }
 
        if (r.length < e_bytes + mod_bytes)
                return (ISC_R_NOSPACE);
-       isc_buffer_availableregion(data, &r);
 
        BN_bn2bin(rsa->e, r.base);
-       r.base += e_bytes;
+       isc_region_consume(&r, e_bytes);
        BN_bn2bin(rsa->n, r.base);
 
        isc_buffer_add(data, e_bytes + mod_bytes);