• G
    9p: write lock path in v9fs_co_open2() · 5b76ef50
    Greg Kurz 提交于
    The assumption that the fid cannot be used by any other operation is
    wrong. At least, nothing prevents a misbehaving client to create a
    file with a given fid, and to pass this fid to some other operation
    at the same time (ie, without waiting for the response to the creation
    request). The call to v9fs_path_copy() performed by the worker thread
    after the file was created can race with any access to the fid path
    performed by some other thread. This causes use-after-free issues that
    can be detected by ASAN with a custom 9p client.
    
    Unlike other operations that only read the fid path, v9fs_co_open2()
    does modify it. It should hence take the write lock.
    
    Cc: P J P <ppandit@redhat.com>
    Reported-by: Nzhibin hu <noirfate@gmail.com>
    Signed-off-by: NGreg Kurz <groug@kaod.org>
    5b76ef50
cofile.c 6.9 KB