]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2018. [bug] Checking if the HMAC MD5 private file was broken.
authorMark Andrews <marka@isc.org>
Tue, 16 May 2006 03:44:54 +0000 (03:44 +0000)
committerMark Andrews <marka@isc.org>
Tue, 16 May 2006 03:44:54 +0000 (03:44 +0000)
                        [RT #15960]

CHANGES
lib/dns/dst_parse.c

diff --git a/CHANGES b/CHANGES
index 2d333abdc5de6c9d6bd533ac89a9c4825da6c2c2..44461ac4a9dfb36e4240a5f8025f1d425ff3cb1c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,7 @@
-2017.  [bug]           allow-query default was net correct. [RT #15946]
+2018.  [bug]           Checking if the HMAC MD5 private file was broken.
+                       [RT #15960]
+
+2017.  [bug]           allow-query default was not correct. [RT #15946]
 
 2016.  [bug]           Return a partial answer if recursion is not
                        allowed but requested and we had the answer
index 6e84a533d4216613d6c903cd7c63b28bd6d5faf4..9851ad11b78642b2ffe69044d7f25551c081e30e 100644 (file)
@@ -18,7 +18,7 @@
 
 /*%
  * Principal Author: Brian Wellington
- * $Id: dst_parse.c,v 1.5 2006/01/27 23:57:46 marka Exp $
+ * $Id: dst_parse.c,v 1.6 2006/05/16 03:44:54 marka Exp $
  */
 
 #include <config.h>
@@ -161,15 +161,22 @@ static int
 check_hmac_md5(const dst_private_t *priv, isc_boolean_t old) {
        int i, j;
 
-       if (!((priv->nelements == HMACMD5_NTAGS) ||
-             (old && (priv->nelements == OLD_HMACMD5_NTAGS))))
+       if (priv->nelements != HMACMD5_NTAGS) {
+               /*
+                * If this a good old format and we are accepting
+                * the old format return success.
+                */
+               if (old && priv->nelements == OLD_HMACMD5_NTAGS &&
+                   priv->elements[0].tag == TAG_HMACMD5_KEY)
+                       return (0);
                return (-1);
-       if (priv->nelements == OLD_HMACMD5_NTAGS &&
-           priv->elements[0].tag != TAG_HMACMD5_KEY)
-               return (-1);
-       for (i = 0; i < DSA_NTAGS; i++) {
+       }
+       /*
+        * We must be new format at this point.
+        */
+       for (i = 0; i < HMACMD5_NTAGS; i++) {
                for (j = 0; j < priv->nelements; j++)
-                       if (priv->elements[j].tag == TAG(DST_ALG_DSA, i))
+                       if (priv->elements[j].tag == TAG(DST_ALG_HMACMD5, i))
                                break;
                if (j == priv->nelements)
                        return (-1);