summaryrefslogtreecommitdiffstats
path: root/src/kadmin/cli/kadmin.c
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2008-11-05 16:19:01 +0000
committerGreg Hudson <ghudson@mit.edu>2008-11-05 16:19:01 +0000
commit6d38cab0b686e49b3a72e02e29099cd491e052cb (patch)
tree0095bfb30797e75bef5d6e4c01b4586a48e1cbfb /src/kadmin/cli/kadmin.c
parent6566763d0c306ad4dca003f2c4b9dd354d3d14fb (diff)
downloadkrb5-6d38cab0b686e49b3a72e02e29099cd491e052cb.tar.gz
krb5-6d38cab0b686e49b3a72e02e29099cd491e052cb.tar.xz
krb5-6d38cab0b686e49b3a72e02e29099cd491e052cb.zip
Convert many uses of strcpy/strcat (and sometimes sprintf) to accepted
string-handling functions. ticket: 6200 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21001 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/cli/kadmin.c')
-rw-r--r--src/kadmin/cli/kadmin.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/kadmin/cli/kadmin.c b/src/kadmin/cli/kadmin.c
index e5a336aa05..ea64826d32 100644
--- a/src/kadmin/cli/kadmin.c
+++ b/src/kadmin/cli/kadmin.c
@@ -161,23 +161,22 @@ kadmin_parse_name(name, principal)
{
char *cp, *fullname;
krb5_error_code retval;
+ int result;
/* assumes def_realm is initialized! */
- fullname = (char *)malloc(strlen(name) + 1 + strlen(def_realm) + 1);
- if (fullname == NULL)
- return ENOMEM;
- strcpy(fullname, name);
- cp = strchr(fullname, '@');
+ cp = strchr(name, '@');
while (cp) {
- if (cp - fullname && *(cp - 1) != '\\')
+ if (cp - name && *(cp - 1) != '\\')
break;
else
cp = strchr(cp + 1, '@');
}
- if (cp == NULL) {
- strcat(fullname, "@");
- strcat(fullname, def_realm);
- }
+ if (cp == NULL)
+ result = asprintf(&fullname, "%s@%s", name, def_realm);
+ else
+ fullname = strdup(name);
+ if (result < 0)
+ return ENOMEM;
retval = krb5_parse_name(context, fullname, principal);
free(fullname);
return retval;