Try to not leak memory.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@18820 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -67,20 +67,20 @@ check(void *opt, int argc, char **argv) | ||||
| { | ||||
|     kadm5_principal_ent_rec ent; | ||||
|     krb5_error_code ret; | ||||
|     char *realm, *p, *p2; | ||||
|     char *realm = NULL, *p, *p2; | ||||
|     int found; | ||||
|  | ||||
|     if (argc == 0) { | ||||
| 	ret = krb5_get_default_realm(context, &realm); | ||||
| 	if (ret) { | ||||
| 	    krb5_warn(context, ret, "krb5_get_default_realm"); | ||||
| 	    return 1; | ||||
| 	    goto fail; | ||||
| 	} | ||||
|     } else { | ||||
| 	realm = strdup(argv[0]); | ||||
| 	if (realm == NULL) { | ||||
| 	    krb5_warnx(context, "malloc"); | ||||
| 	    return 1; | ||||
| 	    goto fail; | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| @@ -92,7 +92,7 @@ check(void *opt, int argc, char **argv) | ||||
|  | ||||
|     if (asprintf(&p, "%s/%s@%s", KRB5_TGS_NAME, realm, realm) == -1) { | ||||
| 	krb5_warn(context, errno, "asprintf"); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|  | ||||
|     ret = get_check_entry(p, &ent); | ||||
| @@ -100,7 +100,7 @@ check(void *opt, int argc, char **argv) | ||||
| 	printf("%s doesn't exist, are you sure %s is a realm in your database", | ||||
| 	       p, realm); | ||||
| 	free(p); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|     free(p);     | ||||
|  | ||||
| @@ -112,7 +112,7 @@ check(void *opt, int argc, char **argv) | ||||
|  | ||||
|     if (asprintf(&p, "kadmin/admin@%s", realm) == -1) { | ||||
| 	krb5_warn(context, errno, "asprintf"); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|  | ||||
|     ret = get_check_entry(p, &ent); | ||||
| @@ -120,7 +120,7 @@ check(void *opt, int argc, char **argv) | ||||
| 	printf("%s doesn't exist, " | ||||
| 	       "there is no way to do remote administration", p); | ||||
| 	free(p); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|     free(p); | ||||
|  | ||||
| @@ -132,7 +132,7 @@ check(void *opt, int argc, char **argv) | ||||
|  | ||||
|     if (asprintf(&p, "kadmin/changepw@%s", realm) == -1) { | ||||
| 	krb5_warn(context, errno, "asprintf"); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|  | ||||
|     ret = get_check_entry(p, &ent); | ||||
| @@ -140,7 +140,7 @@ check(void *opt, int argc, char **argv) | ||||
| 	printf("%s doesn't exist, " | ||||
| 	       "there is no way to do change password", p); | ||||
| 	free(p); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|     free(p); | ||||
|  | ||||
| @@ -154,14 +154,14 @@ check(void *opt, int argc, char **argv) | ||||
|     if (p2 == NULL) { | ||||
| 	krb5_warn(context, errno, "malloc"); | ||||
| 	free(p); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|     strlwr(p2); | ||||
|  | ||||
|     if (asprintf(&p, "afs/%s@%s", p2, realm) == -1) { | ||||
| 	krb5_warn(context, errno, "asprintf"); | ||||
| 	free(p2); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|     free(p2); | ||||
|  | ||||
| @@ -175,7 +175,7 @@ check(void *opt, int argc, char **argv) | ||||
|  | ||||
|     if (asprintf(&p, "afs@%s", realm) == -1) { | ||||
| 	krb5_warn(context, errno, "asprintf"); | ||||
| 	return 1; | ||||
| 	goto fail; | ||||
|     } | ||||
|  | ||||
|     ret = get_check_entry(p, &ent); | ||||
| @@ -184,9 +184,13 @@ check(void *opt, int argc, char **argv) | ||||
| 	kadm5_free_principal_ent(kadm_handle, &ent); | ||||
| 	if (found) { | ||||
| 	    krb5_warnx(context, "afs@REALM and afs/cellname@REALM both exists"); | ||||
| 	    return 1; | ||||
| 	    goto fail; | ||||
| 	} | ||||
|     } | ||||
|  | ||||
|     free(realm); | ||||
|     return 0; | ||||
| fail: | ||||
|     free(realm); | ||||
|     return 1; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand