lkml.org 
[lkml]   [2017]   [Oct]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.13 123/160] ovl: fix dentry leak in ovl_indexdir_cleanup()
    Date
    4.13-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Amir Goldstein <amir73il@gmail.com>

    commit dc7ab6773e8171e07f16fd0df0c5eea28c899503 upstream.

    index dentry was not released when breaking out of the loop
    due to index verification error.

    Fixes: 415543d5c64f ("ovl: cleanup bad and stale index entries on mount")
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/overlayfs/readdir.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/fs/overlayfs/readdir.c
    +++ b/fs/overlayfs/readdir.c
    @@ -672,6 +672,7 @@ int ovl_indexdir_cleanup(struct dentry *
    struct path *lowerstack, unsigned int numlower)
    {
    int err;
    + struct dentry *index = NULL;
    struct inode *dir = dentry->d_inode;
    struct path path = { .mnt = mnt, .dentry = dentry };
    LIST_HEAD(list);
    @@ -690,8 +691,6 @@ int ovl_indexdir_cleanup(struct dentry *

    inode_lock_nested(dir, I_MUTEX_PARENT);
    list_for_each_entry(p, &list, l_node) {
    - struct dentry *index;
    -
    if (p->name[0] == '.') {
    if (p->len == 1)
    continue;
    @@ -701,6 +700,7 @@ int ovl_indexdir_cleanup(struct dentry *
    index = lookup_one_len(p->name, dentry, p->len);
    if (IS_ERR(index)) {
    err = PTR_ERR(index);
    + index = NULL;
    break;
    }
    err = ovl_verify_index(index, lowerstack, numlower);
    @@ -712,7 +712,9 @@ int ovl_indexdir_cleanup(struct dentry *
    break;
    }
    dput(index);
    + index = NULL;
    }
    + dput(index);
    inode_unlock(dir);
    out:
    ovl_cache_free(&list);

    \
     
     \ /
      Last update: 2017-10-10 22:10    [W:2.998 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site