]> 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:47:14 +0000 (03:47 +0000)
committerMark Andrews <marka@isc.org>
Tue, 16 May 2006 03:47:14 +0000 (03:47 +0000)
                        [RT #15960]

CHANGES
lib/dns/dst_parse.c

diff --git a/CHANGES b/CHANGES
index 652059101689645caa53fca8bfb46c440676da00..5e709a7662365caef0c40d1a2fba91f12a0533a8 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 45f0fa54019d0d21a87e1b30b54b315c7e02a104..4625d0a64351db2213d20f9b104b9fd0908b401e 100644 (file)
@@ -18,7 +18,7 @@
 
 /*%
  * Principal Author: Brian Wellington
- * $Id: dst_parse.c,v 1.1.6.5 2006/01/27 23:57:44 marka Exp $
+ * $Id: dst_parse.c,v 1.1.6.6 2006/05/16 03:47:14 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);