diff options
author | Andreas Schneider <asn@samba.org> | 2016-02-15 08:24:45 +0100 |
---|---|---|
committer | Alexander Bokovoy <ab@samba.org> | 2016-06-02 12:48:13 +0200 |
commit | 3d6e18f2101f75fec2377914c71e3887049bf7e5 (patch) | |
tree | 4dfa61c9e5a89b396926cf7ed5aa735cfe3fbbe6 /source4/kdc | |
parent | 84c4b91fc669353379a6ec3d81617693c9aff538 (diff) | |
download | samba-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.c | 28 |
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; |