summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2008-10-20 18:18:49 +0000
committerGreg Hudson <ghudson@mit.edu>2008-10-20 18:18:49 +0000
commite4a2f122c3086c1179323c0e24edb3506d3f4758 (patch)
tree310614d952144eaba5f2e0a1aec7f86af40862de /src/lib
parent4c6801514e9ee5e6459780d37bc4a83429dd4746 (diff)
downloadkrb5-e4a2f122c3086c1179323c0e24edb3506d3f4758.tar.gz
krb5-e4a2f122c3086c1179323c0e24edb3506d3f4758.tar.xz
krb5-e4a2f122c3086c1179323c0e24edb3506d3f4758.zip
Use strdup in place of malloc/strcpy in many places
ticket: 6200 status: open git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20898 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/gssapi/generic/util_canonhost.c4
-rw-r--r--src/lib/gssapi/generic/util_localhost.c5
-rw-r--r--src/lib/gssapi/krb5/gssapi_krb5.c3
-rw-r--r--src/lib/gssapi/mechglue/g_dsp_status.c3
-rw-r--r--src/lib/gssapi/spnego/spnego_mech.c9
-rw-r--r--src/lib/kadm5/logger.c5
-rw-r--r--src/lib/kadm5/srv/server_acl.c3
-rw-r--r--src/lib/kadm5/srv/svr_policy.c3
-rw-r--r--src/lib/kadm5/srv/svr_principal.c3
-rw-r--r--src/lib/krb5/asn.1/asn1buf.c12
-rw-r--r--src/lib/krb5/ccache/cc_memory.c5
-rw-r--r--src/lib/krb5/ccache/ccapi/stdcc.c13
-rw-r--r--src/lib/krb5/keytab/kt_file.c3
-rw-r--r--src/lib/krb5/keytab/kt_memory.c4
-rw-r--r--src/lib/krb5/keytab/kt_srvtab.c3
-rw-r--r--src/lib/krb5/krb/get_in_tkt.c4
-rw-r--r--src/lib/krb5/krb/set_realm.c3
-rw-r--r--src/lib/krb5/os/ccdefname.c6
-rw-r--r--src/lib/krb5/os/def_realm.c10
-rw-r--r--src/lib/krb5/os/hst_realm.c9
-rw-r--r--src/lib/krb5/os/init_os_ctx.c3
-rw-r--r--src/lib/krb5/os/promptusr.c3
-rw-r--r--src/lib/krb5/os/realm_dom.c4
-rw-r--r--src/lib/krb5/rcache/rc_dfl.c3
-rw-r--r--src/lib/krb5/rcache/rc_io.c3
25 files changed, 35 insertions, 91 deletions
diff --git a/src/lib/gssapi/generic/util_canonhost.c b/src/lib/gssapi/generic/util_canonhost.c
index f1bd93f2b..ef093e621 100644
--- a/src/lib/gssapi/generic/util_canonhost.c
+++ b/src/lib/gssapi/generic/util_canonhost.c
@@ -59,11 +59,9 @@ g_canonicalize_host(char *hostname)
xfree(haddr);
- if ((canon = (char *) xmalloc(strlen(hent->h_name)+1)) == NULL)
+ if ((canon = (char *) strdup(hent->h_name)) == NULL)
return(NULL);
- strcpy(canon, hent->h_name);
-
for (str = canon; *str; str++)
if (isupper(*str)) *str = tolower(*str);
diff --git a/src/lib/gssapi/generic/util_localhost.c b/src/lib/gssapi/generic/util_localhost.c
index 2d3c27cb2..c014400fb 100644
--- a/src/lib/gssapi/generic/util_localhost.c
+++ b/src/lib/gssapi/generic/util_localhost.c
@@ -45,8 +45,5 @@ g_local_host_name(void)
buf[sizeof(buf)-1] = '\0';
- if (! (ptr = xmalloc(strlen(buf) + 1)))
- return 0;
-
- return strcpy(ptr, buf);
+ return strdup(buf);
}
diff --git a/src/lib/gssapi/krb5/gssapi_krb5.c b/src/lib/gssapi/krb5/gssapi_krb5.c
index 64812a78b..12e553f2f 100644
--- a/src/lib/gssapi/krb5/gssapi_krb5.c
+++ b/src/lib/gssapi/krb5/gssapi_krb5.c
@@ -246,12 +246,11 @@ kg_set_ccache_name (OM_uint32 *minor_status, const char *name)
krb5_error_code kerr;
if (name) {
- new_name = malloc(strlen(name) + 1);
+ new_name = strdup(name);
if (new_name == NULL) {
*minor_status = ENOMEM;
return GSS_S_FAILURE;
}
- strcpy(new_name, name);
}
kg_ccache_name = k5_getspecific(K5_KEY_GSS_KRB5_CCACHE_NAME);
diff --git a/src/lib/gssapi/mechglue/g_dsp_status.c b/src/lib/gssapi/mechglue/g_dsp_status.c
index 78dac8a5c..cb779aa90 100644
--- a/src/lib/gssapi/mechglue/g_dsp_status.c
+++ b/src/lib/gssapi/mechglue/g_dsp_status.c
@@ -358,12 +358,11 @@ gss_buffer_t outStr;
/* now copy the status code and return to caller */
outStr->length = strlen(errStr);
- outStr->value = malloc((size_t)outStr->length+1);
+ outStr->value = strdup(errStr);
if (outStr->value == NULL) {
outStr->length = 0;
return (GSS_S_FAILURE);
}
- (void) strcpy((char *)outStr->value, errStr);
return (GSS_S_COMPLETE);
} /* displayMajor */
diff --git a/src/lib/gssapi/spnego/spnego_mech.c b/src/lib/gssapi/spnego/spnego_mech.c
index a62336139..54b9af5d1 100644
--- a/src/lib/gssapi/spnego/spnego_mech.c
+++ b/src/lib/gssapi/spnego/spnego_mech.c
@@ -2260,14 +2260,7 @@ negotiate_mech_type(OM_uint32 *minor_status,
static spnego_token_t
make_spnego_token(char *name)
{
- spnego_token_t token;
-
- token = (spnego_token_t)malloc(strlen(name)+1);
-
- if (token == NULL)
- return (NULL);
- strcpy(token, name);
- return (token);
+ return (spnego_token_t)strdup(name);
}
static gss_buffer_desc
diff --git a/src/lib/kadm5/logger.c b/src/lib/kadm5/logger.c
index a1edd495d..1dc886abd 100644
--- a/src/lib/kadm5/logger.c
+++ b/src/lib/kadm5/logger.c
@@ -664,10 +664,7 @@ krb5_klog_init(krb5_context kcontext, char *ename, char *whoami, krb5_boolean do
log_control.log_nentries = 1;
}
if (log_control.log_nentries) {
- log_control.log_whoami = (char *) malloc(strlen(whoami)+1);
- if (log_control.log_whoami)
- strcpy(log_control.log_whoami, whoami);
-
+ log_control.log_whoami = strdup(whoami);
log_control.log_hostname = (char *) malloc(MAXHOSTNAMELEN + 1);
if (log_control.log_hostname) {
gethostname(log_control.log_hostname, MAXHOSTNAMELEN);
diff --git a/src/lib/kadm5/srv/server_acl.c b/src/lib/kadm5/srv/server_acl.c
index 8eed476c8..f3172e49a 100644
--- a/src/lib/kadm5/srv/server_acl.c
+++ b/src/lib/kadm5/srv/server_acl.c
@@ -217,9 +217,8 @@ kadm5int_acl_parse_line(lp)
}
}
if (opok) {
- acle->ae_name = (char *) malloc(strlen(acle_principal)+1);
+ acle->ae_name = strdup(acle_principal);
if (acle->ae_name) {
- strcpy(acle->ae_name, acle_principal);
acle->ae_principal = (krb5_principal) NULL;
acle->ae_name_bad = 0;
DPRINT(DEBUG_ACL, acl_debug_level,
diff --git a/src/lib/kadm5/srv/svr_policy.c b/src/lib/kadm5/srv/svr_policy.c
index 512876b79..3286404eb 100644
--- a/src/lib/kadm5/srv/svr_policy.c
+++ b/src/lib/kadm5/srv/svr_policy.c
@@ -289,11 +289,10 @@ kadm5_get_policy(void *server_handle, kadm5_policy_t name,
if( cnt != 1 )
return KADM5_UNK_POLICY;
- if ((entry->policy = (char *) malloc(strlen(t->name) + 1)) == NULL) {
+ if ((entry->policy = strdup(t->name)) == NULL) {
krb5_db_free_policy(handle->context, t);
return ENOMEM;
}
- strcpy(entry->policy, t->name);
entry->pw_min_life = t->pw_min_life;
entry->pw_max_life = t->pw_max_life;
entry->pw_min_length = t->pw_min_length;
diff --git a/src/lib/kadm5/srv/svr_principal.c b/src/lib/kadm5/srv/svr_principal.c
index f0b54ee12..4b763b5ff 100644
--- a/src/lib/kadm5/srv/svr_principal.c
+++ b/src/lib/kadm5/srv/svr_principal.c
@@ -744,11 +744,10 @@ kadm5_get_principal(void *server_handle, krb5_principal principal,
if ((mask & KADM5_POLICY) &&
adb.policy && (adb.aux_attributes & KADM5_POLICY)) {
- if ((entry->policy = (char *) malloc(strlen(adb.policy) + 1)) == NULL) {
+ if ((entry->policy = strdup(adb.policy)) == NULL) {
ret = ENOMEM;
goto done;
}
- strcpy(entry->policy, adb.policy);
}
if (mask & KADM5_AUX_ATTRIBUTES)
diff --git a/src/lib/krb5/asn.1/asn1buf.c b/src/lib/krb5/asn.1/asn1buf.c
index 49ef84fbb..4162c9ee5 100644
--- a/src/lib/krb5/asn.1/asn1buf.c
+++ b/src/lib/krb5/asn.1/asn1buf.c
@@ -276,13 +276,11 @@ asn1_error_code asn1buf_unparse(const asn1buf *buf, char **s)
{
free(*s);
if (buf == NULL) {
- *s = malloc(sizeof("<NULL>"));
+ *s = strdup("<NULL>");
if (*s == NULL) return ENOMEM;
- strcpy(*s,"<NULL>");
} else if (buf->base == NULL) {
- *s = malloc(sizeof("<EMPTY>"));
+ *s = strdup("<EMPTY>");
if (*s == NULL) return ENOMEM;
- strcpy(*s,"<EMPTY>");
} else {
unsigned int length = asn1buf_len(buf);
unsigned int i;
@@ -305,13 +303,11 @@ asn1_error_code asn1buf_hex_unparse(const asn1buf *buf, char **s)
free(*s);
if (buf == NULL) {
- *s = malloc(sizeof("<NULL>"));
+ *s = strdup("<NULL>");
if (*s == NULL) return ENOMEM;
- strcpy(*s,"<NULL>");
} else if (buf->base == NULL) {
- *s = malloc(sizeof("<EMPTY>"));
+ *s = strdup("<EMPTY>");
if (*s == NULL) return ENOMEM;
- strcpy(*s,"<EMPTY>");
} else {
unsigned int length = asn1buf_len(buf);
int i;
diff --git a/src/lib/krb5/ccache/cc_memory.c b/src/lib/krb5/ccache/cc_memory.c
index 4a3b67c80..cdddc58f5 100644
--- a/src/lib/krb5/ccache/cc_memory.c
+++ b/src/lib/krb5/ccache/cc_memory.c
@@ -415,7 +415,7 @@ new_mcc_data (const char *name, krb5_mcc_data **dataptr)
return err;
}
- d->name = malloc(strlen(name) + 1);
+ d->name = strdup(name);
if (d->name == NULL) {
k5_cc_mutex_destroy(&d->lock);
krb5_xfree(d);
@@ -426,9 +426,6 @@ new_mcc_data (const char *name, krb5_mcc_data **dataptr)
d->changetime = 0;
update_mcc_change_time(d);
- /* Set up the filename */
- strcpy(d->name, name);
-
n = malloc(sizeof(krb5_mcc_list_node));
if (n == NULL) {
free(d->name);
diff --git a/src/lib/krb5/ccache/ccapi/stdcc.c b/src/lib/krb5/ccache/ccapi/stdcc.c
index a5e171e24..de5de4dd5 100644
--- a/src/lib/krb5/ccache/ccapi/stdcc.c
+++ b/src/lib/krb5/ccache/ccapi/stdcc.c
@@ -347,12 +347,11 @@ krb5_stdccv3_generate_new (krb5_context context, krb5_ccache *id )
}
if (!err) {
- name = (char *) malloc (sizeof (*name) * (strlen (ccstring->data) + 1));
+ name = strdup (ccstring->data);
if (!name) { err = KRB5_CC_NOMEM; }
}
if (!err) {
- strcpy (name, ccstring->data);
ccapi_data->cache_name = name;
name = NULL; /* take ownership */
@@ -407,7 +406,7 @@ krb5_stdccv3_resolve (krb5_context context, krb5_ccache *id , const char *residu
}
if (!err) {
- name = malloc (strlen(residual) + 1);
+ name = strdup (residual);
if (!name) { err = KRB5_CC_NOMEM; }
}
@@ -421,7 +420,6 @@ krb5_stdccv3_resolve (krb5_context context, krb5_ccache *id , const char *residu
}
if (!err) {
- strcpy(name, residual);
ccapi_data->cache_name = name;
name = NULL; /* take ownership */
@@ -936,12 +934,11 @@ krb5_stdccv3_ptcursor_next(
}
if (!err) {
- name = (char *) malloc (sizeof (*name) * (strlen (ccstring->data) + 1));
+ name = strdup (ccstring->data);
if (!name) { err = KRB5_CC_NOMEM; }
}
if (!err) {
- strcpy (name, ccstring->data);
ccapi_data->cache_name = name;
name = NULL; /* take ownership */
@@ -1198,15 +1195,13 @@ krb5_error_code KRB5_CALLCONV krb5_stdcc_resolve
if (!(ccapi_data = (stdccCacheDataPtr)malloc(sizeof(stdccCacheData))))
goto errout;
- if (!(cName = malloc(strlen(residual)+1)))
+ if (!(cName = strdup(residual)))
goto errout;
newCache->ops = &krb5_cc_stdcc_ops;
newCache->data = ccapi_data;
ccapi_data->cache_name = cName;
- strcpy(cName, residual);
-
err = cc_open(gCntrlBlock, cName, CC_CRED_V5, 0L,
&ccapi_data->NamedCache);
if (err != CC_NOERROR) {
diff --git a/src/lib/krb5/keytab/kt_file.c b/src/lib/krb5/keytab/kt_file.c
index cd2298ba5..bf394d887 100644
--- a/src/lib/krb5/keytab/kt_file.c
+++ b/src/lib/krb5/keytab/kt_file.c
@@ -221,14 +221,13 @@ ktfile_common_resolve(krb5_context context, const char *name,
return err;
}
- if ((data->name = (char *)calloc(strlen(name) + 1, sizeof(char))) == NULL) {
+ if ((data->name = strdup(name)) == NULL) {
k5_mutex_destroy(&data->lock);
krb5_xfree(data);
krb5_xfree(*id);
return(ENOMEM);
}
- (void) strcpy(data->name, name);
data->openf = 0;
data->version = 0;
data->iter_count = 0;
diff --git a/src/lib/krb5/keytab/kt_memory.c b/src/lib/krb5/keytab/kt_memory.c
index eb1dd77e0..1b4af9bd6 100644
--- a/src/lib/krb5/keytab/kt_memory.c
+++ b/src/lib/krb5/keytab/kt_memory.c
@@ -252,7 +252,7 @@ krb5_mkt_resolve(krb5_context context, const char *name, krb5_keytab *id)
goto done;
}
- if ((data->name = (char *)calloc(strlen(name) + 1, sizeof(char))) == NULL) {
+ if ((data->name = strdup(name)) == NULL) {
k5_mutex_destroy(&data->lock);
krb5_xfree(data);
krb5_xfree(list->keytab);
@@ -261,8 +261,6 @@ krb5_mkt_resolve(krb5_context context, const char *name, krb5_keytab *id)
goto done;
}
- (void) strcpy(data->name, name);
-
data->link = NULL;
data->refcount = 0;
list->keytab->data = (krb5_pointer)data;
diff --git a/src/lib/krb5/keytab/kt_srvtab.c b/src/lib/krb5/keytab/kt_srvtab.c
index 2bc460345..da09d87a5 100644
--- a/src/lib/krb5/keytab/kt_srvtab.c
+++ b/src/lib/krb5/keytab/kt_srvtab.c
@@ -127,14 +127,13 @@ krb5_ktsrvtab_resolve(krb5_context context, const char *name, krb5_keytab *id)
return(ENOMEM);
}
- data->name = (char *)malloc(strlen(name) + 1);
+ data->name = strdup(name);
if (data->name == NULL) {
krb5_xfree(data);
krb5_xfree(*id);
return(ENOMEM);
}
- (void) strcpy(data->name, name);
data->openf = 0;
(*id)->data = (krb5_pointer)data;
diff --git a/src/lib/krb5/krb/get_in_tkt.c b/src/lib/krb5/krb/get_in_tkt.c
index 36b731155..a1c29a46a 100644
--- a/src/lib/krb5/krb/get_in_tkt.c
+++ b/src/lib/krb5/krb/get_in_tkt.c
@@ -788,11 +788,9 @@ goodbye:
if (!nameval[0]) {
retval = ENOENT;
} else {
- *ret_value = malloc(strlen(nameval[0]) + 1);
+ *ret_value = strdup(nameval[0]);
if (!*ret_value)
retval = ENOMEM;
- else
- strcpy(*ret_value, nameval[0]);
}
profile_free_list(nameval);
diff --git a/src/lib/krb5/krb/set_realm.c b/src/lib/krb5/krb/set_realm.c
index 16112a8da..edb72ae7f 100644
--- a/src/lib/krb5/krb/set_realm.c
+++ b/src/lib/krb5/krb/set_realm.c
@@ -36,10 +36,9 @@ krb5_set_principal_realm(krb5_context context, krb5_principal principal, const c
return -EINVAL;
length = strlen(realm);
- newrealm = malloc(length+1); /* Include room for the null */
+ newrealm = strdup(realm);
if (!newrealm)
return -ENOMEM;
- strcpy(newrealm, realm);
(void) krb5_xfree(krb5_princ_realm(context,principal)->data);
diff --git a/src/lib/krb5/os/ccdefname.c b/src/lib/krb5/os/ccdefname.c
index 8d42a965a..63e00d421 100644
--- a/src/lib/krb5/os/ccdefname.c
+++ b/src/lib/krb5/os/ccdefname.c
@@ -251,13 +251,9 @@ krb5_cc_set_default_name(krb5_context context, const char *name)
if (name != NULL) {
if (!err) {
/* If the name isn't NULL, make a copy of it */
- new_ccname = malloc (strlen (name) + 1);
+ new_ccname = strdup (name);
if (new_ccname == NULL) { err = ENOMEM; }
}
-
- if (!err) {
- strcpy (new_ccname, name);
- }
}
if (!err) {
diff --git a/src/lib/krb5/os/def_realm.c b/src/lib/krb5/os/def_realm.c
index d63f1af63..13a025d9b 100644
--- a/src/lib/krb5/os/def_realm.c
+++ b/src/lib/krb5/os/def_realm.c
@@ -72,7 +72,6 @@ krb5_error_code KRB5_CALLCONV
krb5_get_default_realm(krb5_context context, char **lrealm)
{
char *realm = 0;
- char *cp;
krb5_error_code retval;
if (!context || (context->magic != KV5M_CONTEXT))
@@ -90,12 +89,11 @@ krb5_get_default_realm(krb5_context context, char **lrealm)
&realm);
if (!retval && realm) {
- context->default_realm = malloc(strlen(realm) + 1);
+ context->default_realm = strdup(realm);
if (!context->default_realm) {
profile_release_string(realm);
return ENOMEM;
}
- strcpy(context->default_realm, realm);
profile_release_string(realm);
}
}
@@ -155,9 +153,8 @@ krb5_get_default_realm(krb5_context context, char **lrealm)
realm = context->default_realm;
- if (!(*lrealm = cp = malloc((unsigned int) strlen(realm) + 1)))
+ if (!(*lrealm = strdup(realm)))
return ENOMEM;
- strcpy(cp, realm);
return(0);
}
@@ -176,12 +173,11 @@ krb5_set_default_realm(krb5_context context, const char *lrealm)
NULL */
if (!lrealm) return 0;
- context->default_realm = malloc(strlen (lrealm) + 1);
+ context->default_realm = strdup(lrealm);
if (!context->default_realm)
return ENOMEM;
- strcpy(context->default_realm, lrealm);
return(0);
}
diff --git a/src/lib/krb5/os/hst_realm.c b/src/lib/krb5/os/hst_realm.c
index 983637864..258288d93 100644
--- a/src/lib/krb5/os/hst_realm.c
+++ b/src/lib/krb5/os/hst_realm.c
@@ -250,19 +250,17 @@ krb5_get_host_realm(krb5_context context, const char *host, char ***realmsp)
#ifdef DEBUG_REFERRALS
printf(" temp_realm is %s\n",temp_realm);
#endif
- realm = malloc(strlen(temp_realm) + 1);
+ realm = strdup(temp_realm);
if (!realm) {
profile_release_string(temp_realm);
return ENOMEM;
}
- strcpy(realm, temp_realm);
profile_release_string(temp_realm);
}
if (realm == (char *)NULL) {
- if (!(cp = (char *)malloc(strlen(KRB5_REFERRAL_REALM)+1)))
+ if (!(cp = strdup(KRB5_REFERRAL_REALM)))
return ENOMEM;
- strcpy(cp, KRB5_REFERRAL_REALM);
realm = cp;
}
@@ -400,9 +398,8 @@ krb5_get_fallback_host_realm(krb5_context context, krb5_data *hdata, char ***rea
if (realm == (char *)NULL) {
if (default_realm != (char *)NULL) {
/* We are defaulting to the realm of the host */
- if (!(cp = (char *)malloc(strlen(default_realm)+1)))
+ if (!(cp = strdup(default_realm)))
return ENOMEM;
- strcpy(cp, default_realm);
realm = cp;
/* Assume the realm name is upper case */
diff --git a/src/lib/krb5/os/init_os_ctx.c b/src/lib/krb5/os/init_os_ctx.c
index 4799e9107..7e21b6ef7 100644
--- a/src/lib/krb5/os/init_os_ctx.c
+++ b/src/lib/krb5/os/init_os_ctx.c
@@ -198,9 +198,8 @@ os_get_default_config_files(profile_filespec_t **pfiles, krb5_boolean secure)
char *env = getenv("KRB5_CONFIG");
if (env)
{
- name = malloc(strlen(env) + 1);
+ name = strdup(env);
if (!name) return ENOMEM;
- strcpy(name, env);
}
}
if (!name && !secure)
diff --git a/src/lib/krb5/os/promptusr.c b/src/lib/krb5/os/promptusr.c
index 68f8b14a0..3c9c50a6c 100644
--- a/src/lib/krb5/os/promptusr.c
+++ b/src/lib/krb5/os/promptusr.c
@@ -90,11 +90,10 @@ krb5_os_get_tty_uio(krb5_context context, krb5_uio uio)
} while (ch != EOF && ch != '\n');
read_string[sizeof(read_string)-1] = 0;
- if ((p->response = malloc(strlen(read_string)+1)) == NULL) {
+ if ((p->response = strdup(read_string)) == NULL) {
errno = ENOMEM;
goto cleanup;
}
- strcpy(p->response, read_string);
if ((p->flags & KRB5_UIO_ECHORESPONSE) == 0) {
(void) putchar('\n');
diff --git a/src/lib/krb5/os/realm_dom.c b/src/lib/krb5/os/realm_dom.c
index d7a4be7db..43e6266ca 100644
--- a/src/lib/krb5/os/realm_dom.c
+++ b/src/lib/krb5/os/realm_dom.c
@@ -55,11 +55,9 @@ krb5_get_realm_domain(krb5_context context, const char *realm, char **domain)
"default_domain", realm, &temp_domain);
if (!retval && temp_domain)
{
- *domain = malloc(strlen(temp_domain) + 1);
+ *domain = strdup(temp_domain);
if (!*domain) {
retval = ENOMEM;
- } else {
- strcpy(*domain, temp_domain);
}
profile_release_string(temp_domain);
}
diff --git a/src/lib/krb5/rcache/rc_dfl.c b/src/lib/krb5/rcache/rc_dfl.c
index 4b1c174b2..f03971909 100644
--- a/src/lib/krb5/rcache/rc_dfl.c
+++ b/src/lib/krb5/rcache/rc_dfl.c
@@ -285,12 +285,11 @@ krb5_rc_dfl_resolve(krb5_context context, krb5_rcache id, char *name)
return KRB5_RC_MALLOC;
id->data = (krb5_pointer) t;
if (name) {
- t->name = malloc(strlen(name)+1);
+ t->name = strdup(name);
if (!t->name) {
retval = KRB5_RC_MALLOC;
goto cleanup;
}
- strcpy(t->name, name);
} else
t->name = 0;
t->numhits = t->nummisses = 0;
diff --git a/src/lib/krb5/rcache/rc_io.c b/src/lib/krb5/rcache/rc_io.c
index 6692ae145..0309ade5f 100644
--- a/src/lib/krb5/rcache/rc_io.c
+++ b/src/lib/krb5/rcache/rc_io.c
@@ -233,9 +233,8 @@ krb5_rc_io_open_internal(krb5_context context, krb5_rc_iostuff *d, char *fn,
GETDIR;
if (full_pathname) {
- if (!(d->fn = malloc(strlen(full_pathname) + 1)))
+ if (!(d->fn = strdup(full_pathname)))
return KRB5_RC_IO_MALLOC;
- (void) strcpy(d->fn, full_pathname);
} else {
if (!(d->fn = malloc(strlen(fn) + dirlen + 1)))
return KRB5_RC_IO_MALLOC;