diff options
author | Yu Jiaoliang <yujiaoliang@vivo.com> | 2024-08-23 09:55:41 +0800 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2024-08-30 08:22:41 +0200 |
commit | 75e4c6bcb88a60402c71ae87328813babb0e679a (patch) | |
tree | 9d9d0d8cb8b2aa9fe58fb8eb128594ae544bd98f | |
parent | 3c58a9575e02c2b90a3180007d57105ceaa7c246 (diff) | |
download | lwn-75e4c6bcb88a60402c71ae87328813babb0e679a.tar.gz lwn-75e4c6bcb88a60402c71ae87328813babb0e679a.zip |
mnt_idmapping: Use kmemdup_array instead of kmemdup for multiple allocation
Let the kememdup_array() take care about multiplication and possible
overflows.
v2:Add a new modification for reverse array.
Signed-off-by: Yu Jiaoliang <yujiaoliang@vivo.com>
Link: https://lore.kernel.org/r/20240823015542.3006262-1-yujiaoliang@vivo.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r-- | fs/mnt_idmapping.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/mnt_idmapping.c b/fs/mnt_idmapping.c index 3c60f1eaca61..79491663dbc0 100644 --- a/fs/mnt_idmapping.c +++ b/fs/mnt_idmapping.c @@ -228,15 +228,15 @@ static int copy_mnt_idmap(struct uid_gid_map *map_from, return 0; } - forward = kmemdup(map_from->forward, - nr_extents * sizeof(struct uid_gid_extent), - GFP_KERNEL_ACCOUNT); + forward = kmemdup_array(map_from->forward, nr_extents, + sizeof(struct uid_gid_extent), + GFP_KERNEL_ACCOUNT); if (!forward) return -ENOMEM; - reverse = kmemdup(map_from->reverse, - nr_extents * sizeof(struct uid_gid_extent), - GFP_KERNEL_ACCOUNT); + reverse = kmemdup_array(map_from->reverse, nr_extents, + sizeof(struct uid_gid_extent), + GFP_KERNEL_ACCOUNT); if (!reverse) { kfree(forward); return -ENOMEM; |