make a copy of realm and admin_server to avoid un-consting
avoid shadowing git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15583 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
16
admin/get.c
16
admin/get.c
@@ -47,7 +47,11 @@ open_kadmin_connection(char *principal,
|
|||||||
memset(&conf, 0, sizeof(conf));
|
memset(&conf, 0, sizeof(conf));
|
||||||
|
|
||||||
if(realm) {
|
if(realm) {
|
||||||
conf.realm = (char*)realm;
|
conf.realm = strdup(realm);
|
||||||
|
if (conf.realm == NULL) {
|
||||||
|
krb5_set_error_string(context, "malloc: out of memory");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
conf.mask |= KADM5_CONFIG_REALM;
|
conf.mask |= KADM5_CONFIG_REALM;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,6 +74,7 @@ open_kadmin_connection(char *principal,
|
|||||||
KADM5_ADMIN_SERVICE,
|
KADM5_ADMIN_SERVICE,
|
||||||
&conf, 0, 0,
|
&conf, 0, 0,
|
||||||
&kadm_handle);
|
&kadm_handle);
|
||||||
|
free(conf.realm);
|
||||||
if(ret) {
|
if(ret) {
|
||||||
krb5_warn(context, ret, "kadm5_init_with_password");
|
krb5_warn(context, ret, "kadm5_init_with_password");
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -85,7 +90,7 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
|||||||
void *kadm_handle = NULL;
|
void *kadm_handle = NULL;
|
||||||
krb5_enctype *etypes = NULL;
|
krb5_enctype *etypes = NULL;
|
||||||
size_t netypes = 0;
|
size_t netypes = 0;
|
||||||
int i = 0, j;
|
int i, j;
|
||||||
unsigned int failed = 0;
|
unsigned int failed = 0;
|
||||||
|
|
||||||
if((keytab = ktutil_open_keytab()) == NULL)
|
if((keytab = ktutil_open_keytab()) == NULL)
|
||||||
@@ -95,7 +100,6 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
|||||||
krb5_set_default_realm(context, opt->realm_string);
|
krb5_set_default_realm(context, opt->realm_string);
|
||||||
|
|
||||||
if (opt->enctypes_strings.num_strings != 0) {
|
if (opt->enctypes_strings.num_strings != 0) {
|
||||||
int i;
|
|
||||||
|
|
||||||
etypes = malloc (opt->enctypes_strings.num_strings * sizeof(*etypes));
|
etypes = malloc (opt->enctypes_strings.num_strings * sizeof(*etypes));
|
||||||
if (etypes == NULL) {
|
if (etypes == NULL) {
|
||||||
@@ -201,11 +205,11 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
|||||||
int do_add = TRUE;
|
int do_add = TRUE;
|
||||||
|
|
||||||
if (netypes) {
|
if (netypes) {
|
||||||
int i;
|
int k;
|
||||||
|
|
||||||
do_add = FALSE;
|
do_add = FALSE;
|
||||||
for (i = 0; i < netypes; ++i)
|
for (k = 0; k < netypes; ++k)
|
||||||
if (keys[j].keytype == etypes[i]) {
|
if (keys[j].keytype == etypes[k]) {
|
||||||
do_add = TRUE;
|
do_add = TRUE;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user