]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3208. [bug] 'dig -y' handle unknown tsig alorithm better.
authorMark Andrews <marka@isc.org>
Sun, 6 Nov 2011 23:18:07 +0000 (23:18 +0000)
committerMark Andrews <marka@isc.org>
Sun, 6 Nov 2011 23:18:07 +0000 (23:18 +0000)
                        [RT #25522]

CHANGES
bin/dig/dighost.c
bin/tests/system/tsig/tests.sh

diff --git a/CHANGES b/CHANGES
index 544d1913dbcb24be5890454468246152b6b85342..77fd0746c54bfa6764709dbe117a0f5ca988c990 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3208.  [bug]           'dig -y' handle unknown tsig alorithm better.
+                       [RT #25522]
+
 3207.  [contrib]       Fixed build error in Berkeley DB DLZ module. [RT #26444]
 
 3206.  [cleanup]       Add ISC information to log at start time. [RT #25484]
index 8f47e59e2c8584e554bc9a78fa8e25daa803daf3..62f2af263e96fb82004caf7e0a1ad1fd1c3c2583 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.341 2011/10/29 22:26:21 marka Exp $ */
+/* $Id: dighost.c,v 1.342 2011/11/06 23:18:07 marka Exp $ */
 
 /*! \file
  *  \note
@@ -66,6 +66,7 @@
 #include <dns/tsig.h>
 
 #include <dst/dst.h>
+#include <dst/result.h>
 
 #include <isc/app.h>
 #include <isc/base64.h>
@@ -925,6 +926,11 @@ setup_text_key(void) {
 
        secretsize = isc_buffer_usedlength(&secretbuf);
 
+       if (hmacname == NULL) {
+               result = DST_R_UNSUPPORTEDALG;
+               goto failure;
+       }
+
        result = dns_name_fromtext(&keyname, namebuf, dns_rootname, 0, namebuf);
        if (result != ISC_R_SUCCESS)
                goto failure;
index d2391c167be803996cab1f0cd2b0413f092858b0..58aefdc7170909c06156c2deda3ccb05a8e6280f 100644 (file)
@@ -14,7 +14,7 @@
 # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 # PERFORMANCE OF THIS SOFTWARE.
 
-# $Id: tests.sh,v 1.5 2007/06/19 23:47:06 tbox Exp $
+# $Id: tests.sh,v 1.6 2011/11/06 23:18:07 marka Exp $
 
 SYSTEMTESTTOP=..
 . $SYSTEMTESTTOP/conf.sh
@@ -213,6 +213,15 @@ if [ $ret -eq 1 ] ; then
        echo "I: failed"; status=1
 fi
 
+echo "I:attempting fetch with bad tsig algorithm"
+ret=0
+$DIG +tcp +nosea +nostat +noquest +nocomm +nocmd example.nil.\
+       -y "badalgo:invalid:$sha512" @10.53.0.1 soa -p 5300 > dig.out.badalgo 2>&1 || ret=1
+grep -i "Couldn't create key invalid: algorithm is unsupported" dig.out.badalgo > /dev/null || ret=1
+if [ $ret -eq 1 ] ; then
+       echo "I: failed"; status=1
+fi
+
 exit $status