aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2008-11-17 21:28:04 +0000
committerKen Raeburn <raeburn@mit.edu>2008-11-17 21:28:04 +0000
commit35512dc03374b199afb6d5f5cb1e399aee63d60e (patch)
tree9eadb72e76b93e48a8fa089352805e87bbf099df
parentc88705c1cd8655ed4287c2e151fc654918f965e6 (diff)
downloadkrb5-35512dc03374b199afb6d5f5cb1e399aee63d60e.zip
krb5-35512dc03374b199afb6d5f5cb1e399aee63d60e.tar.gz
krb5-35512dc03374b199afb6d5f5cb1e399aee63d60e.tar.bz2
Fix a memory management bug
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@21133 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/kdb/kdb_convert.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lib/kdb/kdb_convert.c b/src/lib/kdb/kdb_convert.c
index 3846cba..4885883 100644
--- a/src/lib/kdb/kdb_convert.c
+++ b/src/lib/kdb/kdb_convert.c
@@ -285,10 +285,12 @@ conv_princ_2db(krb5_context context, krb5_principal *dbprinc,
free(princ->data[i].data);
princ->data[i].data = NULL;
}
- } else
+ } else {
princ->data = NULL;
+ princ->length = 0;
+ }
princ->data = (krb5_data *)realloc(princ->data,
- (princ->length * sizeof (krb5_data)));
+ (kdbe_princ->k_components.k_components_len * sizeof (krb5_data)));
if (princ->data == NULL)
/* XXX Memory leak: old storage not freed. */
goto error;