aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5
diff options
context:
space:
mode:
authorLuke Howard <lukeh@padl.com>2009-10-20 00:48:46 +0000
committerLuke Howard <lukeh@padl.com>2009-10-20 00:48:46 +0000
commitbd19b798ba1583651b729910fbb5508e6cb2b4e7 (patch)
tree58123b4479819a2f8d54330ac018aad98435256b /src/lib/krb5
parente6b93b7dd43bb765900b2db71641479b597844da (diff)
downloadkrb5-bd19b798ba1583651b729910fbb5508e6cb2b4e7.zip
krb5-bd19b798ba1583651b729910fbb5508e6cb2b4e7.tar.gz
krb5-bd19b798ba1583651b729910fbb5508e6cb2b4e7.tar.bz2
fix some Coverity reported defects in naming extensions
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@22948 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5')
-rw-r--r--src/lib/krb5/krb/authdata.c44
-rw-r--r--src/lib/krb5/krb/copy_auth.c1
-rw-r--r--src/lib/krb5/krb/pac.c3
-rw-r--r--src/lib/krb5/krb/rd_req_dec.c4
4 files changed, 27 insertions, 25 deletions
diff --git a/src/lib/krb5/krb/authdata.c b/src/lib/krb5/krb/authdata.c
index 6e1b9b5..c5992ad 100644
--- a/src/lib/krb5/krb/authdata.c
+++ b/src/lib/krb5/krb/authdata.c
@@ -408,19 +408,14 @@ krb5_authdata_context_init(krb5_context kcontext,
context = calloc(1, sizeof(*context));
if (kcontext == NULL) {
- if (tables != NULL)
- krb5int_free_plugin_dir_data(tables);
- krb5int_close_plugin_dirs(&context->plugins);
- return ENOMEM;
+ code = ENOMEM;
+ goto cleanup;
}
context->magic = KV5M_AUTHDATA_CONTEXT;
context->modules = calloc(n_modules, sizeof(context->modules[0]));
if (context->modules == NULL) {
- if (tables != NULL)
- krb5int_free_plugin_dir_data(tables);
- krb5int_close_plugin_dirs(&context->plugins);
- free(kcontext);
- return ENOMEM;
+ code = ENOMEM;
+ goto cleanup;
}
context->n_modules = n_modules;
@@ -428,26 +423,28 @@ krb5_authdata_context_init(krb5_context kcontext,
for (i = 0, k = 0, code = 0; i < n_tables - internal_count; i++) {
code = k5_ad_init_modules(kcontext, context, tables[i], &k);
if (code != 0)
- break;
+ goto cleanup;
}
- if (code == 0) {
- for (i = 0; i < internal_count; i++) {
- code = k5_ad_init_modules(kcontext, context, authdata_systems[i], &k);
- if (code != 0)
- break;
- }
+ for (i = 0; i < internal_count; i++) {
+ code = k5_ad_init_modules(kcontext, context, authdata_systems[i], &k);
+ if (code != 0)
+ goto cleanup;
}
+ context->plugins = plugins;
+
+cleanup:
if (tables != NULL)
krb5int_free_plugin_dir_data(tables);
- context->plugins = plugins;
-
- if (code != 0)
+ if (code != 0) {
+ krb5int_close_plugin_dirs(&plugins);
krb5_authdata_context_free(kcontext, context);
- else
+ } else {
+ /* plugins is owned by context now */
*pcontext = context;
+ }
return code;
}
@@ -596,9 +593,14 @@ krb5_authdata_export_authdata(krb5_context kcontext,
if (authdata != NULL)
authdata[len] = NULL;
+ if (code != 0) {
+ krb5_free_authdata(kcontext, authdata);
+ return code;
+ }
+
*pauthdata = authdata;
- return code;
+ return 0;
}
krb5_error_code
diff --git a/src/lib/krb5/krb/copy_auth.c b/src/lib/krb5/krb/copy_auth.c
index ba51f38..6f36b26 100644
--- a/src/lib/krb5/krb/copy_auth.c
+++ b/src/lib/krb5/krb/copy_auth.c
@@ -375,6 +375,7 @@ krb5_verify_authdata_kdc_issued(krb5_context context,
if (code != 0) {
krb5_free_ad_kdcissued(context, ad_kdci);
krb5_free_data(context, data2);
+ return code;
}
krb5_free_data(context, data2);
diff --git a/src/lib/krb5/krb/pac.c b/src/lib/krb5/krb/pac.c
index 297e895..58a28cd 100644
--- a/src/lib/krb5/krb/pac.c
+++ b/src/lib/krb5/krb/pac.c
@@ -1258,9 +1258,6 @@ mspac_get_attribute(krb5_context kcontext,
krb5_error_code code;
krb5_ui_4 type;
- value->data = NULL;
- value->length = 0;
-
if (display_value != NULL) {
display_value->data = NULL;
display_value->length = 0;
diff --git a/src/lib/krb5/krb/rd_req_dec.c b/src/lib/krb5/krb/rd_req_dec.c
index 48503d3..0861794 100644
--- a/src/lib/krb5/krb/rd_req_dec.c
+++ b/src/lib/krb5/krb/rd_req_dec.c
@@ -132,7 +132,7 @@ krb5_rd_req_decrypt_tkt_part(krb5_context context, const krb5_ap_req *req,
req->ticket);
if (retval == 0) {
- krb5_principal tmp;
+ krb5_principal tmp = NULL;
/*
* We overwrite ticket->server to be the principal
@@ -152,6 +152,8 @@ krb5_rd_req_decrypt_tkt_part(krb5_context context, const krb5_ap_req *req,
if (retval == 0) {
krb5_free_principal(context, req->ticket->server);
req->ticket->server = tmp;
+ } else {
+ krb5_free_principal(context, tmp);
}
(void) krb5_free_keytab_entry_contents(context, &ktent);
break;