drivers/memstick/core/mspro_block.c: fix attributes array allocation
authorMichal Nazarewicz <mina86@mina86.com>
Tue, 12 Nov 2013 23:11:39 +0000 (15:11 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Nov 2013 03:09:35 +0000 (12:09 +0900)
attrs field of attribute_group structure is a pointer to a pointer (as in
an array of pointers) rather than pointer to attribute struct (as in an
array of structures), so when allocating size of the pointer sholud be
used instead of the structure it is pointing to.

While at it, also change the call to use kcalloc rather than kzalloc.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Alex Dubov <oakad@yahoo.com>
Cc: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/memstick/core/mspro_block.c

index f4176ca3a794ee2c684d35e3461da165b1abc7ce..fc145d202c46907cf1ed40572068fcf3d21441c1 100644 (file)
@@ -1023,8 +1023,8 @@ static int mspro_block_read_attributes(struct memstick_dev *card)
        } else
                attr_count = attr->count;
 
-       msb->attr_group.attrs = kzalloc((attr_count + 1)
-                                       * sizeof(struct attribute),
+       msb->attr_group.attrs = kcalloc(attr_count + 1,
+                                       sizeof(*msb->attr_group.attrs),
                                        GFP_KERNEL);
        if (!msb->attr_group.attrs) {
                rc = -ENOMEM;