s4-kdc: Fix Coverity ID #1373385 (OVERRUN)
authorGünther Deschner <gd@samba.org>
Tue, 27 Sep 2016 16:34:38 +0000 (18:34 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 29 Sep 2016 20:16:52 +0000 (22:16 +0200)
Guenther

Pair-Programmed-With: Volker Lendecke <vl@samba.org>
Pair-Programmed-With: Andreas Schneider <asn@samba.org>

Signed-off-by: Guenther Deschner <gd@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
Signed-off-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Günther Deschner <gd@samba.org>
Autobuild-Date(master): Thu Sep 29 22:16:52 CEST 2016 on sn-devel-144

source4/kdc/db-glue.c

index d7bba3d35e4f16a9e74ff39e8d95a25b8848e7af..bf55befddf80633c1a197c262def9176e35caa3a 100644 (file)
@@ -236,10 +236,8 @@ static int samba_kdc_sort_encryption_keys(struct sdb_entry_ex *entry_ex)
                for (j = 0; j < keys_size; j++) {
                        const struct sdb_key skey = keys[j];
 
-                       /* Paranoia: Do not overflow the key_data array */
-                       if (idx > keys_size) {
-                               free(sorted_keys);
-                               return -1;
+                       if (idx == keys_size) {
+                               break;
                        }
 
                        if (KRB5_KEY_TYPE(&skey.key) == etype_list[i]) {
@@ -250,7 +248,7 @@ static int samba_kdc_sort_encryption_keys(struct sdb_entry_ex *entry_ex)
        }
 
        /* Paranoia: Something went wrong during data copy */
-       if (idx < keys_size) {
+       if (idx != keys_size) {
                free(sorted_keys);
                return -1;
        }