diff options
| author | Jinjie Ruan <[email protected]> | 2024-08-28 15:23:40 +0800 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2024-09-09 16:47:42 -0700 |
| commit | 546f02823df82cddc411e8db236d296a51308dfa (patch) | |
| tree | 3a75756a0db11da26b4e17141a4e5c56f0039095 /kernel | |
| parent | 0aa75a2b3fafccc875d260e190b14faf5a856d45 (diff) | |
user_namespace: use kmemdup_array() instead of kmemdup() for multiple allocation
Let the kmemdup_array() take care about multiplication and possible
overflows.
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Jinjie Ruan <[email protected]>
Reviewed-by: Kees Cook <[email protected]>
Cc: Alexey Dobriyan <[email protected]>
Cc: Christian Brauner <[email protected]>
Cc: Li zeming <[email protected]>
Cc: Randy Dunlap <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/user_namespace.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index 0b0b95418b16..aa0b2e47f2f2 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -853,9 +853,8 @@ static int sort_idmaps(struct uid_gid_map *map) cmp_extents_forward, NULL); /* Only copy the memory from forward we actually need. */ - map->reverse = kmemdup(map->forward, - map->nr_extents * sizeof(struct uid_gid_extent), - GFP_KERNEL); + map->reverse = kmemdup_array(map->forward, map->nr_extents, + sizeof(struct uid_gid_extent), GFP_KERNEL); if (!map->reverse) return -ENOMEM; |