On Wed, Sep 01, 2021 at 10:51:43AM -0700, Stephen Brennan wrote:
inline struct dentry *user_path_create(int dfd, const char __user *pathname,
struct path *path, unsigned int lookup_flags)
{
- return filename_create(dfd, getname(pathname), path, lookup_flags);
+ struct filename *filename;
+ struct dentry *dentry;
+
+ filename = getname(pathname);
+ dentry = filename_create(dfd, getname(pathname), path, lookup_flags);
+ putname(filename);
+ return dentry;
Leaks, obviously...