From: Andreas Schneider Date: Mon, 15 Feb 2016 07:24:45 +0000 (+0100) Subject: kdb: Do not allocate memory with size 0 X-Git-Tag: tdb-1.3.10~1014 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3d6e18f2101f75fec2377914c71e3887049bf7e5;p=thirdparty%2Fsamba.git kdb: Do not allocate memory with size 0 Signed-off-by: Andreas Schneider Reviewed-by: Alexander Bokovoy --- 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;