diff options
Diffstat (limited to 'src/clients/ksu/krb_auth_su.c')
-rw-r--r-- | src/clients/ksu/krb_auth_su.c | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/clients/ksu/krb_auth_su.c b/src/clients/ksu/krb_auth_su.c index fb0f547fb9..abc158c4b4 100644 --- a/src/clients/ksu/krb_auth_su.c +++ b/src/clients/ksu/krb_auth_su.c @@ -444,8 +444,13 @@ krb5_boolean krb5_get_tkt_via_passwd (context, ccache, client, server, } else my_creds.times.renew_till = 0; - - (void) sprintf(prompt,"Kerberos password for %s: ", (char *) client_name); + if (strlen (client_name) + 80 > sizeof (prompt)) { + fprintf (stderr, + "principal name %s too long for internal buffer space\n", + client_name); + return FALSE; + } + (void) sprintf(prompt,"Kerberos password for %s: ", client_name); pwsize = sizeof(password); @@ -485,29 +490,26 @@ void dump_principal (context, str, p) krb5_context context; char *str; krb5_principal p; -{ -char * stname; -krb5_error_code retval; +{ + char * stname; + krb5_error_code retval; - if ((retval = krb5_unparse_name(context, p, &stname))){ - fprintf(stderr," %s while unparsing name \n", - error_message(retval)); - } - fprintf(stderr, " %s: %s\n", str, stname ); + if ((retval = krb5_unparse_name(context, p, &stname))) { + fprintf(stderr, " %s while unparsing name\n", error_message(retval)); + } + fprintf(stderr, " %s: %s\n", str, stname); } void plain_dump_principal (context, p) krb5_context context; krb5_principal p; { -char * stname; -krb5_error_code retval; + char * stname; + krb5_error_code retval; - if ((retval = krb5_unparse_name(context, p, &stname))){ - fprintf(stderr," %s while unparsing name \n", - error_message(retval)); - } - fprintf(stderr, "%s ", stname ); + if ((retval = krb5_unparse_name(context, p, &stname))) + fprintf(stderr, " %s while unparsing name\n", error_message(retval)); + fprintf(stderr, "%s ", stname); } #if 0 |