projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'v3.15-rc5' into next
[cascardo/linux.git]
/
fs
/
proc
/
namespaces.c
diff --git
a/fs/proc/namespaces.c
b/fs/proc/namespaces.c
index
9ae46b8
..
8902609
100644
(file)
--- a/
fs/proc/namespaces.c
+++ b/
fs/proc/namespaces.c
@@
-146,7
+146,7
@@
static int proc_ns_readlink(struct dentry *dentry, char __user *buffer, int bufl
struct task_struct *task;
void *ns;
char name[50];
struct task_struct *task;
void *ns;
char name[50];
- int
len
= -EACCES;
+ int
res
= -EACCES;
task = get_proc_task(inode);
if (!task)
task = get_proc_task(inode);
if (!task)
@@
-155,24
+155,18
@@
static int proc_ns_readlink(struct dentry *dentry, char __user *buffer, int bufl
if (!ptrace_may_access(task, PTRACE_MODE_READ))
goto out_put_task;
if (!ptrace_may_access(task, PTRACE_MODE_READ))
goto out_put_task;
-
len
= -ENOENT;
+
res
= -ENOENT;
ns = ns_ops->get(task);
if (!ns)
goto out_put_task;
snprintf(name, sizeof(name), "%s:[%u]", ns_ops->name, ns_ops->inum(ns));
ns = ns_ops->get(task);
if (!ns)
goto out_put_task;
snprintf(name, sizeof(name), "%s:[%u]", ns_ops->name, ns_ops->inum(ns));
- len = strlen(name);
-
- if (len > buflen)
- len = buflen;
- if (copy_to_user(buffer, name, len))
- len = -EFAULT;
-
+ res = readlink_copy(buffer, buflen, name);
ns_ops->put(ns);
out_put_task:
put_task_struct(task);
out:
ns_ops->put(ns);
out_put_task:
put_task_struct(task);
out:
- return
len
;
+ return
res
;
}
static const struct inode_operations proc_ns_link_inode_operations = {
}
static const struct inode_operations proc_ns_link_inode_operations = {