diff options
-rw-r--r-- | fs/namei.c | 28 | ||||
-rw-r--r-- | kernel/auditsc.c | 3 |
2 files changed, 13 insertions, 18 deletions
diff --git a/fs/namei.c b/fs/namei.c index c283a1ec008e..208c6aa4a989 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -140,21 +140,19 @@ static int do_getname(const char __user *filename, char *page) | |||
140 | 140 | ||
141 | static char *getname_flags(const char __user *filename, int flags, int *empty) | 141 | static char *getname_flags(const char __user *filename, int flags, int *empty) |
142 | { | 142 | { |
143 | char *tmp, *result; | 143 | char *result = __getname(); |
144 | 144 | int retval; | |
145 | result = ERR_PTR(-ENOMEM); | 145 | |
146 | tmp = __getname(); | 146 | if (!result) |
147 | if (tmp) { | 147 | return ERR_PTR(-ENOMEM); |
148 | int retval = do_getname(filename, tmp); | 148 | |
149 | 149 | retval = do_getname(filename, result); | |
150 | result = tmp; | 150 | if (retval < 0) { |
151 | if (retval < 0) { | 151 | if (retval == -ENOENT && empty) |
152 | if (retval == -ENOENT && empty) | 152 | *empty = 1; |
153 | *empty = 1; | 153 | if (retval != -ENOENT || !(flags & LOOKUP_EMPTY)) { |
154 | if (retval != -ENOENT || !(flags & LOOKUP_EMPTY)) { | 154 | __putname(result); |
155 | __putname(tmp); | 155 | return ERR_PTR(retval); |
156 | result = ERR_PTR(retval); | ||
157 | } | ||
158 | } | 156 | } |
159 | } | 157 | } |
160 | audit_getname(result); | 158 | audit_getname(result); |
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index bd084a13c719..9161e70a4379 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -1913,9 +1913,6 @@ void __audit_getname(const char *name) | |||
1913 | struct audit_context *context = current->audit_context; | 1913 | struct audit_context *context = current->audit_context; |
1914 | struct audit_names *n; | 1914 | struct audit_names *n; |
1915 | 1915 | ||
1916 | if (IS_ERR(name) || !name) | ||
1917 | return; | ||
1918 | |||
1919 | if (!context->in_syscall) { | 1916 | if (!context->in_syscall) { |
1920 | #if AUDIT_DEBUG == 2 | 1917 | #if AUDIT_DEBUG == 2 |
1921 | printk(KERN_ERR "%s:%d(:%d): ignoring getname(%p)\n", | 1918 | printk(KERN_ERR "%s:%d(:%d): ignoring getname(%p)\n", |