summaryrefslogtreecommitdiffstats
path: root/src/clients/ksu/krb_auth_su.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/clients/ksu/krb_auth_su.c')
-rw-r--r--src/clients/ksu/krb_auth_su.c36
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