linuxkpi: Implement kcalloc() based on mallocarray()
This means we now get integer overflow protection, which Linux code might expect as it is also provided by kcalloc() in Linux.
This commit is contained in:
parent
6273ba66f2
commit
e70c77ca17
@ -46,7 +46,6 @@ MALLOC_DECLARE(M_KMALLOC);
|
||||
#define kzalloc(size, flags) kmalloc(size, (flags) | __GFP_ZERO)
|
||||
#define kzalloc_node(size, flags, node) kmalloc(size, (flags) | __GFP_ZERO)
|
||||
#define kfree_const(ptr) kfree(ptr)
|
||||
#define kcalloc(n, size, flags) kmalloc((n) * (size), (flags) | __GFP_ZERO)
|
||||
#define vzalloc(size) __vmalloc(size, GFP_KERNEL | __GFP_NOWARN | __GFP_ZERO, 0)
|
||||
#define vfree(arg) kfree(arg)
|
||||
#define kvfree(arg) kfree(arg)
|
||||
@ -100,6 +99,13 @@ kmalloc(size_t size, gfp_t flags)
|
||||
return (malloc(size, M_KMALLOC, linux_check_m_flags(flags)));
|
||||
}
|
||||
|
||||
static inline void *
|
||||
kcalloc(size_t n, size_t size, gfp_t flags)
|
||||
{
|
||||
flags |= __GFP_ZERO;
|
||||
return (mallocarray(n, size, M_KMALLOC, linux_check_m_flags(flags)));
|
||||
}
|
||||
|
||||
static inline void *
|
||||
__vmalloc(size_t size, gfp_t flags, int other)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user