Browse Source

procfs: don't need a PATH_MAX allocation to hold a string representation of an int

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Jeff Layton 12 năm trước cách đây
mục cha
commit
f81700bd83
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      fs/proc/base.c

+ 3 - 2
fs/proc/base.c

@@ -2258,7 +2258,8 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd)
 	pid_t tgid = task_tgid_nr_ns(current, ns);
 	pid_t tgid = task_tgid_nr_ns(current, ns);
 	char *name = ERR_PTR(-ENOENT);
 	char *name = ERR_PTR(-ENOENT);
 	if (tgid) {
 	if (tgid) {
-		name = __getname();
+		/* 11 for max length of signed int in decimal + NULL term */
+		name = kmalloc(12, GFP_KERNEL);
 		if (!name)
 		if (!name)
 			name = ERR_PTR(-ENOMEM);
 			name = ERR_PTR(-ENOMEM);
 		else
 		else
@@ -2273,7 +2274,7 @@ static void proc_self_put_link(struct dentry *dentry, struct nameidata *nd,
 {
 {
 	char *s = nd_get_link(nd);
 	char *s = nd_get_link(nd);
 	if (!IS_ERR(s))
 	if (!IS_ERR(s))
-		__putname(s);
+		kfree(s);
 }
 }
 
 
 static const struct inode_operations proc_self_inode_operations = {
 static const struct inode_operations proc_self_inode_operations = {