|
@@ -140,21 +140,19 @@ static int do_getname(const char __user *filename, char *page)
|
|
|
|
|
|
static char *getname_flags(const char __user *filename, int flags, int *empty)
|
|
|
{
|
|
|
- char *tmp, *result;
|
|
|
-
|
|
|
- result = ERR_PTR(-ENOMEM);
|
|
|
- tmp = __getname();
|
|
|
- if (tmp) {
|
|
|
- int retval = do_getname(filename, tmp);
|
|
|
-
|
|
|
- result = tmp;
|
|
|
- if (retval < 0) {
|
|
|
- if (retval == -ENOENT && empty)
|
|
|
- *empty = 1;
|
|
|
- if (retval != -ENOENT || !(flags & LOOKUP_EMPTY)) {
|
|
|
- __putname(tmp);
|
|
|
- result = ERR_PTR(retval);
|
|
|
- }
|
|
|
+ char *result = __getname();
|
|
|
+ int retval;
|
|
|
+
|
|
|
+ if (!result)
|
|
|
+ return ERR_PTR(-ENOMEM);
|
|
|
+
|
|
|
+ retval = do_getname(filename, result);
|
|
|
+ if (retval < 0) {
|
|
|
+ if (retval == -ENOENT && empty)
|
|
|
+ *empty = 1;
|
|
|
+ if (retval != -ENOENT || !(flags & LOOKUP_EMPTY)) {
|
|
|
+ __putname(result);
|
|
|
+ return ERR_PTR(retval);
|
|
|
}
|
|
|
}
|
|
|
audit_getname(result);
|