summaryrefslogtreecommitdiff
path: root/source4/kdc
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2016-02-15 08:24:45 +0100
committerAlexander Bokovoy <ab@samba.org>2016-06-02 12:48:13 +0200
commit3d6e18f2101f75fec2377914c71e3887049bf7e5 (patch)
tree4dfa61c9e5a89b396926cf7ed5aa735cfe3fbbe6 /source4/kdc
parent84c4b91fc669353379a6ec3d81617693c9aff538 (diff)
downloadsamba-3d6e18f2101f75fec2377914c71e3887049bf7e5.tar.gz
kdb: Do not allocate memory with size 0
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
Diffstat (limited to 'source4/kdc')
-rw-r--r--source4/kdc/sdb_to_kdb.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/source4/kdc/sdb_to_kdb.c b/source4/kdc/sdb_to_kdb.c
index 5d4be53725b..ce05b626633 100644
--- a/source4/kdc/sdb_to_kdb.c
+++ b/source4/kdc/sdb_to_kdb.c
@@ -282,24 +282,24 @@ static int sdb_entry_ex_to_krb5_db_entry(krb5_context context,
/* FIXME: TODO HDB Extensions */
-
- k->key_data = malloc(s->keys.len * sizeof(krb5_key_data));
- if (k->key_data == NULL) {
- free_krb5_db_entry(context, k);
- return ret;
- }
-
- for (i=0; i < s->keys.len; i++) {
-
- ret = sdb_key_to_krb5_key_data(&s->keys.val[i],
- s->kvno,
- &k->key_data[i]);
- if (ret) {
+ if (s->keys.len > 0) {
+ k->key_data = malloc(s->keys.len * sizeof(krb5_key_data));
+ if (k->key_data == NULL) {
free_krb5_db_entry(context, k);
return ret;
}
- k->n_key_data++;
+ for (i=0; i < s->keys.len; i++) {
+ ret = sdb_key_to_krb5_key_data(&s->keys.val[i],
+ s->kvno,
+ &k->key_data[i]);
+ if (ret) {
+ free_krb5_db_entry(context, k);
+ return ret;
+ }
+
+ k->n_key_data++;
+ }
}
return 0;