Skip to content

Commit b463d7f

Browse files
liu-song-6brauner
authored andcommitted
fs: Fix filename init after recent refactoring
getname_flags() should save __user pointer "filename" in filename->uptr. However, this logic is broken by a recent refactoring. Fix it by passing __user pointer filename to helper initname(). Fixes: 6118510 ("fs: dedup handling of struct filename init and refcounts bumps") Cc: Mateusz Guzik <mjguzik@gmail.com> Cc: Christian Brauner <brauner@kernel.org> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/20250409220534.3635801-1-song@kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 40cb48e commit b463d7f

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

fs/namei.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,9 @@
125125

126126
#define EMBEDDED_NAME_MAX (PATH_MAX - offsetof(struct filename, iname))
127127

128-
static inline void initname(struct filename *name)
128+
static inline void initname(struct filename *name, const char __user *uptr)
129129
{
130-
name->uptr = NULL;
130+
name->uptr = uptr;
131131
name->aname = NULL;
132132
atomic_set(&name->refcnt, 1);
133133
}
@@ -210,7 +210,7 @@ getname_flags(const char __user *filename, int flags)
210210
return ERR_PTR(-ENAMETOOLONG);
211211
}
212212
}
213-
initname(result);
213+
initname(result, filename);
214214
audit_getname(result);
215215
return result;
216216
}
@@ -268,7 +268,7 @@ struct filename *getname_kernel(const char * filename)
268268
return ERR_PTR(-ENAMETOOLONG);
269269
}
270270
memcpy((char *)result->name, filename, len);
271-
initname(result);
271+
initname(result, NULL);
272272
audit_getname(result);
273273
return result;
274274
}

0 commit comments

Comments
 (0)