diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-18 00:27:47 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-18 00:27:47 +0100 |
commit | 05016b0f0a9d900e976db7f50a7761c0aefe5a1c (patch) | |
tree | 20b2f04fee785dc9ef81596cb2f7deec6d8016e0 /fs/exec.c | |
parent | Merge branch 'debugfs_automount' of git://git.kernel.org/pub/scm/linux/kernel... (diff) | |
parent | audit: replace getname()/putname() hacks with reference counters (diff) | |
download | linux-05016b0f0a9d900e976db7f50a7761c0aefe5a1c.tar.xz linux-05016b0f0a9d900e976db7f50a7761c0aefe5a1c.zip |
Merge branch 'getname2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull getname/putname updates from Al Viro:
"Rework of getname/getname_kernel/etc., mostly from Paul Moore. Gets
rid of quite a pile of kludges between namei and audit..."
* 'getname2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
audit: replace getname()/putname() hacks with reference counters
audit: fix filename matching in __audit_inode() and __audit_inode_child()
audit: enable filename recording via getname_kernel()
simpler calling conventions for filename_mountpoint()
fs: create proper filename objects using getname_kernel()
fs: rework getname_kernel to handle up to PATH_MAX sized filenames
cut down the number of do_path_lookup() callers
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/fs/exec.c b/fs/exec.c index ad8798e26be9..c7f9b733406d 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -794,8 +794,14 @@ exit: struct file *open_exec(const char *name) { - struct filename tmp = { .name = name }; - return do_open_execat(AT_FDCWD, &tmp, 0); + struct filename *filename = getname_kernel(name); + struct file *f = ERR_CAST(filename); + + if (!IS_ERR(filename)) { + f = do_open_execat(AT_FDCWD, filename, 0); + putname(filename); + } + return f; } EXPORT_SYMBOL(open_exec); |