Kill an odd (but harmless) use of strncpy in
authorGreg Hudson <ghudson@mit.edu>
Mon, 23 Feb 2009 18:28:48 +0000 (18:28 +0000)
committerGreg Hudson <ghudson@mit.edu>
Mon, 23 Feb 2009 18:28:48 +0000 (18:28 +0000)
krb5_get_in_tkt_with_password, by using the construction from
krb5_get_init_creds_password.

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

src/lib/krb5/krb/gic_pwd.c

index 5b3469ea15f5f857eaf6b3ec2f7332a19312bd6e..ef2b7f0964f4b4d9bd01ed14367b4cd24a74eb4f 100644 (file)
@@ -483,16 +483,13 @@ krb5_get_in_tkt_with_password(krb5_context context, krb5_flags options,
     int use_master = 0;
     krb5_gic_opt_ext *opte = NULL;
 
-    pw0array[0] = '\0';
     pw0.data = pw0array;
-    if (password) {
-       pw0.length = strlen(password);
-       if (pw0.length > sizeof(pw0array))
+    if (password && password[0]) {
+       if (strlcpy(pw0.data, password, sizeof(pw0array)) >= sizeof(pw0array))
            return EINVAL;
-       strncpy(pw0.data, password, sizeof(pw0array));
-       if (pw0.length == 0)
-           pw0.length = sizeof(pw0array);
+       pw0.length = strlen(password);
     } else {
+       pw0.data[0] = '\0';
        pw0.length = sizeof(pw0array);
     }
     retval = krb5int_populate_gic_opt(context, &opte,