mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
securityfs: use kstrdup_const() to manage symlink targets
Since 'target' argument of 'securityfs_create_symlink()' is (for now at least) a compile-time constant, it may be reasonable to use 'kstrdup_const()' / 'kree_const()' to manage 'i_link' member of the corresponding inode in attempt to reuse .rodata instance rather than making a copy. Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
committed by
Paul Moore
parent
fe3c03b84a
commit
d1a0919586
@@ -30,7 +30,7 @@ static int mount_count;
|
||||
static void securityfs_free_inode(struct inode *inode)
|
||||
{
|
||||
if (S_ISLNK(inode->i_mode))
|
||||
kfree(inode->i_link);
|
||||
kfree_const(inode->i_link);
|
||||
free_inode_nonrcu(inode);
|
||||
}
|
||||
|
||||
@@ -258,17 +258,17 @@ struct dentry *securityfs_create_symlink(const char *name,
|
||||
const struct inode_operations *iops)
|
||||
{
|
||||
struct dentry *dent;
|
||||
char *link = NULL;
|
||||
const char *link = NULL;
|
||||
|
||||
if (target) {
|
||||
link = kstrdup(target, GFP_KERNEL);
|
||||
link = kstrdup_const(target, GFP_KERNEL);
|
||||
if (!link)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
dent = securityfs_create_dentry(name, S_IFLNK | 0444, parent,
|
||||
link, NULL, iops);
|
||||
(void *)link, NULL, iops);
|
||||
if (IS_ERR(dent))
|
||||
kfree(link);
|
||||
kfree_const(link);
|
||||
|
||||
return dent;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user