selinux: Use kmalloc_array() in hashtab_create()
authorMarkus Elfring <elfring@users.sourceforge.net>
Sat, 14 Jan 2017 11:06:13 +0000 (12:06 +0100)
committerPaul Moore <paul@paul-moore.com>
Thu, 23 Mar 2017 20:31:20 +0000 (16:31 -0400)
A multiplication for the size determination of a memory allocation
indicated that an array data structure should be processed.
Thus use the corresponding function "kmalloc_array".

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Paul Moore <paul@paul-moore.com>
security/selinux/ss/hashtab.c

index 2cc496149842825cd90e57a087c57314295f73fc..dc99fff64ecb5706c569160402010f081f242fdf 100644 (file)
@@ -24,7 +24,7 @@ struct hashtab *hashtab_create(u32 (*hash_value)(struct hashtab *h, const void *
        p->nel = 0;
        p->hash_value = hash_value;
        p->keycmp = keycmp;
-       p->htable = kmalloc(sizeof(*(p->htable)) * size, GFP_KERNEL);
+       p->htable = kmalloc_array(size, sizeof(*p->htable), GFP_KERNEL);
        if (p->htable == NULL) {
                kfree(p);
                return NULL;