Set length correctly in krb5_get_in_tkt_with_password if password is
authorTom Yu <tlyu@mit.edu>
Wed, 21 May 2003 23:55:58 +0000 (23:55 +0000)
committerTom Yu <tlyu@mit.edu>
Wed, 21 May 2003 23:55:58 +0000 (23:55 +0000)
actually passed in.  Also, fix test suite to be more lenient about
password prompts, which changed under the previous patches for this
ticket.

ticket: 1480

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15463 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/kadm5/unit-test/ChangeLog
src/lib/kadm5/unit-test/api.0/init.exp
src/lib/kadm5/unit-test/api.2/init.exp
src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/gic_pwd.c
src/tests/dejagnu/config/ChangeLog
src/tests/dejagnu/config/default.exp
src/tests/dejagnu/krb-standalone/ChangeLog
src/tests/dejagnu/krb-standalone/kadmin.exp

index f4da36de47c1f839f878aed5bd991bfde0a8295d..918f47d1984c5e8825d607391d3def4c7d906f21 100644 (file)
@@ -1,3 +1,11 @@
+2003-05-21  Tom Yu  <tlyu@mit.edu>
+
+       * api.0/init.exp (test6, test7): Be slightly more lenient about
+       matching password prompt.
+
+       * api.2/init.exp (test6, test7): Be slightly more lenient about
+       matching password prompt.
+
 2003-01-07  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.ov: Deleted.
index f232d23d080a741ff61be21882259e18e5b6306d..d39ecce07dd125b0f4806c9872cc4750d54877a0 100644 (file)
@@ -77,7 +77,7 @@ proc test6 {} {
     send "ovsec_kadm_init admin null \$OVSEC_KADM_ADMIN_SERVICE null \$OVSEC_KADM_STRUCT_VERSION \$OVSEC_KADM_API_VERSION_1 server_handle\n"
 
     expect {
-       {Enter password:} { }
+       -re "assword\[^\r\n\]*: *" { }
        eof {
                fail "$test: eof instead of password prompt"
                api_exit
@@ -103,7 +103,7 @@ proc test7 {} {
     send "ovsec_kadm_init admin \"\" \$OVSEC_KADM_ADMIN_SERVICE null \$OVSEC_KADM_STRUCT_VERSION \$OVSEC_KADM_API_VERSION_1 server_handle\n"
 
     expect {
-       {Enter password:} { }
+       -re "assword\[^\r\n\]*: *" { }
        -re "\n\[^\n\]+key:\[^\n\]*$" { }
        eof {
                fail "$test: eof instead of password prompt"
index a1a2bc5ea567b3325ab2e35733ebeb761816cff2..335f6e04129ca7c06eff1b74b2db65c44c2faa4d 100644 (file)
@@ -80,7 +80,7 @@ proc test6 {} {
     send "kadm5_init admin null \$KADM5_ADMIN_SERVICE null \$KADM5_STRUCT_VERSION \$KADM5_API_VERSION_2 server_handle\n"
 
     expect {
-       {Enter password:} { }
+       -re "assword\[^\r\n\]*:" { }
        eof {
                fail "$test: eof instead of password prompt"
                api_exit
@@ -106,7 +106,7 @@ proc test7 {} {
     send "kadm5_init admin \"\" \$KADM5_ADMIN_SERVICE null \$KADM5_STRUCT_VERSION \$KADM5_API_VERSION_2 server_handle\n"
 
     expect {
-       {Enter password:} { }
+       -re "assword\[^\r\n\]*:" { }
        -re "key:$" { }
        eof {
                fail "$test: eof instead of password prompt"
index 4cfa1f5f7f806e5a3984afef87aa52ad83dccefe..0802d0e344c71ad0a2a445dd5e714ffc36348be4 100644 (file)
@@ -1,3 +1,8 @@
+2003-05-21  Tom Yu  <tlyu@mit.edu>
+
+       * gic_pwd.c (krb5_get_in_tkt_with_password): Set pw0.length
+       correctly if a password is passed in.
+
 2003-05-20  Sam Hartman  <hartmans@mit.edu>
 
        * get_in_tkt.c: get_in_tkt only supports old (non-etype-info2)
index 97db38e1986e26f62c3d399d9b4e597e9f605315..1d373f50866817b96e3ab8528619a94e5328f163 100644 (file)
@@ -433,13 +433,15 @@ krb5_get_in_tkt_with_password(krb5_context context, krb5_flags options,
     pw0array[0] = '\0';
     pw0.data = pw0array;
     if (password) {
-       if (strlen(password) >= sizeof(pw0array))
+       pw0.length = strlen(password);
+       if (pw0.length > sizeof(pw0array))
            return EINVAL;
        strncpy(pw0.data, password, sizeof(pw0array));
-       pw0array[strlen(password)] = '\0';
+       if (pw0.length == 0)
+           pw0.length = sizeof(pw0array);
+    } else {
+       pw0.length = sizeof(pw0array);
     }
-    pw0.length = sizeof(pw0array);
-    
     krb5int_populate_gic_opt(context, &opt,
                             options, addrs, ktypes,
                             pre_auth_types);
index df3c7814188c1bfd2603213f8ec2fe7b98560e04..f97939601a0ec24aadd61f59d2285a9ec8effc95 100644 (file)
@@ -1,3 +1,8 @@
+2003-05-21  Tom Yu  <tlyu@mit.edu>
+
+       * default.exp: Be slightly more lenient about matching password
+       prompts.
+
 2003-05-16  Ken Raeburn  <raeburn@mit.edu>
 
        * default.exp (spawn_xterm): Add KPASSWD and REALMNAME to the list
index 079bf9a2a0bf511a798919b859dec798ce8e7fbd..d72cc5dbef8437eb9fdc9a39406979f31111eef7 100644 (file)
@@ -1541,7 +1541,7 @@ proc add_kerberos_key { kkey standalone } {
                break
            }
        }
-       expect "Enter password:"
+       expect -re "assword\[^\r\n\]*: *"
        send "adminpass$KEY\r"
        expect "Enter password for principal \"$kkey@$REALMNAME\":"
        send "$kkey"
@@ -1603,7 +1603,7 @@ proc add_random_key { kkey standalone } {
                break
            }
        }
-       expect "Enter password:"
+       expect -re "assword\[^\r\n\]*: *"
        send "adminpass$KEY\r"
        expect {
            "Principal \"$kkey@$REALMNAME\" created" { }
index 01f490230ff9222bdc3819819112b0547bc7deec..bb88a40c9ae754166c1b3c7ea8f1bcf0bfe5e63f 100644 (file)
@@ -1,3 +1,8 @@
+2003-05-21  Tom Yu  <tlyu@mit.edu>
+
+       * kadmin.exp: Be slightly more lenient about matching password
+       prompts.
+
 2003-03-26  Tom Yu  <tlyu@mit.edu>
 
        * v4gssftp.exp (v4ftp_test): Return early if $des3_krbtgt set.
index d4754e489c7eae83e53676cd3f709ec26e3d51a7..ded386d3de1c67dd00338adc305ea499ba32fb9a 100644 (file)
@@ -52,7 +52,7 @@ proc kadmin_add { pname password } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*:" {
        send "adminpass$KEY\r"
     }
     expect "Enter password for principal \"$pname@$REALMNAME\":" { send "$password\r" }
@@ -155,7 +155,7 @@ proc kadmin_add_rnd { pname } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect "Principal \"$pname@$REALMNAME\" created." { set good 1 }
@@ -236,7 +236,7 @@ proc kadmin_show { pname } {
            return 0
        }
     }
-    expect "Enter password:"
+    expect -re "assword\[^\r\n\]*: *"
     send "adminpass$KEY\r"
     expect -re "\r.*Principal: $pname@$REALMNAME.*Key: .*Attributes:.*Policy: .*\r"
     expect_after
@@ -277,7 +277,7 @@ proc kadmin_cpw { pname password } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
 
@@ -324,7 +324,7 @@ proc kadmin_cpw_rnd { pname } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     # When in doubt, jam one of these in there.
@@ -368,7 +368,7 @@ proc kadmin_modify { pname flags } {
            return 0
        }
     }
-    expect "Enter password:"
+    expect -re "assword\[^\r\n\]*: *"
     send "adminpass$KEY\r"
     # When in doubt, jam one of these in there.
     expect "\r"
@@ -413,7 +413,7 @@ proc kadmin_list {  } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect -re "\(.*@$REALMNAME\r\n\)*"
@@ -459,7 +459,7 @@ proc kadmin_extract { instance name } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
 #    expect -re "kadmin: Entry for principal $name/$instance with kvno [0-9], encryption type .* added to keytab WRFILE:$tmppwd/keytab."
@@ -504,7 +504,7 @@ proc kadmin_extract { instance name } {
 #          return 0
 #      }
 #    }
-#    expect "Enter password:" {
+#    expect -re "assword\[^\r\n\]*: *" {
 #      send "adminpass$KEY\r"
 #    }
 #    expect "extracted entry $name to key table $instance-new-v4-srvtab"
@@ -550,7 +550,7 @@ proc kadmin_delete { pname } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect "Principal \"$pname@$REALMNAME\" deleted." { set good 1 }
@@ -676,7 +676,7 @@ proc kadmin_addpol { pname } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect_after
@@ -759,7 +759,7 @@ proc kadmin_delpol { pname } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect_after
@@ -834,7 +834,7 @@ proc kadmin_listpols {  } {
            return 0
        }
     }
-    expect "Enter password:" {
+    expect -re "assword\[^\r\n\]*: *" {
        send "adminpass$KEY\r"
     }
     expect_after
@@ -875,7 +875,7 @@ proc kadmin_modpol { pname flags } {
            return 0
        }
     }
-    expect "Enter password:"
+    expect -re "assword\[^\r\n\]*: *"
     send "adminpass$KEY\r"
     # When in doubt, jam one of these in there.
     expect "\r"
@@ -918,7 +918,7 @@ proc kadmin_showpol { pname } {
            return 0
        }
     }
-    expect "Enter password:"
+    expect -re "assword\[^\r\n\]*: *"
     send "adminpass$KEY\r"
     expect -re "\r.*Policy: $pname.*Number of old keys kept: .*Reference count: .*\r"
     expect_after