mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
selinux: hooks: use kmalloc() to allocate path buffer
selinux_genfs_get_sid() allocates memory for a path with __get_free_page(). Such usage does not require a "page" and the size of the buffer should actually be PATH_MAX which may be less than PAGE_SIZE on some architectures. Replace __get_free_page() for allocation of a path buffer with kmalloc() and make it explicit that the buffer size is PATH_MAX. Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
dc59e4fea9
commit
5adb9195e0
|
|
@ -1336,11 +1336,11 @@ static int selinux_genfs_get_sid(struct dentry *dentry,
|
|||
struct super_block *sb = dentry->d_sb;
|
||||
char *buffer, *path;
|
||||
|
||||
buffer = (char *)__get_free_page(GFP_KERNEL);
|
||||
buffer = kmalloc(PATH_MAX, GFP_KERNEL);
|
||||
if (!buffer)
|
||||
return -ENOMEM;
|
||||
|
||||
path = dentry_path_raw(dentry, buffer, PAGE_SIZE);
|
||||
path = dentry_path_raw(dentry, buffer, PATH_MAX);
|
||||
if (IS_ERR(path))
|
||||
rc = PTR_ERR(path);
|
||||
else {
|
||||
|
|
@ -1361,7 +1361,7 @@ static int selinux_genfs_get_sid(struct dentry *dentry,
|
|||
rc = 0;
|
||||
}
|
||||
}
|
||||
free_page((unsigned long)buffer);
|
||||
kfree(buffer);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user