mirror of https://gitee.com/openkylin/linux.git
treewide: Use struct_size() for vmalloc()-family
This only finds one hit in the entire tree, but here's the Coccinelle: // Directly refer to structure's field @@ identifier alloc =~ "vmalloc|vzalloc"; identifier VAR, ELEMENT; expression COUNT; @@ - alloc(sizeof(*VAR) + COUNT * sizeof(*VAR->ELEMENT)) + alloc(struct_size(VAR, ELEMENT, COUNT)) // mr = kzalloc(sizeof(*mr) + m * sizeof(mr->map[0]), GFP_KERNEL); @@ identifier alloc =~ "vmalloc|vzalloc"; identifier VAR, ELEMENT; expression COUNT; @@ - alloc(sizeof(*VAR) + COUNT * sizeof(VAR->ELEMENT[0])) + alloc(struct_size(VAR, ELEMENT, COUNT)) // Same pattern, but can't trivially locate the trailing element name, // or variable name. @@ identifier alloc =~ "vmalloc|vzalloc"; expression SOMETHING, COUNT, ELEMENT; @@ - alloc(sizeof(SOMETHING) + COUNT * sizeof(ELEMENT)) + alloc(CHECKME_struct_size(&SOMETHING, ELEMENT, COUNT)) Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
acafe7e302
commit
b4b06db115
|
@ -144,8 +144,7 @@ nvkm_ramht_new(struct nvkm_device *device, u32 size, u32 align,
|
|||
struct nvkm_ramht *ramht;
|
||||
int ret, i;
|
||||
|
||||
if (!(ramht = *pramht = vzalloc(sizeof(*ramht) +
|
||||
(size >> 3) * sizeof(*ramht->data))))
|
||||
if (!(ramht = *pramht = vzalloc(struct_size(ramht, data, (size >> 3)))))
|
||||
return -ENOMEM;
|
||||
|
||||
ramht->device = device;
|
||||
|
|
Loading…
Reference in New Issue