parent_dirname_compatible_open perhaps doing incorrect test or returning incorrect result

Richard Sharpe realrichardsharpe at gmail.com
Thu Nov 15 12:06:52 MST 2012


Hi folks,

in source3/smbd/reply.c:parent_dirname_compatible_open, which is
called from rename_internals_fsp, we see the following code in
V3-6-test and master:

        id = vfs_file_id_from_sbuf(conn, &smb_fname_parent.st);
        for (fsp = file_find_di_first(conn->sconn, id); fsp;
                        fsp = file_find_di_next(fsp)) {
                if (fsp->access_mask & DELETE_ACCESS) {
                        DEBUG(10, ("sharing viol on %s: access: %0X\n",
                                smb_fname_str_dbg(fsp->fsp_name),
                                fsp->access_mask));
                        return NT_STATUS_SHARING_VIOLATION;
                }
        }
        return NT_STATUS_OK;

This code is confusing and is seemingly causing the smb2.streams
rename subtest to fail:

failure: rename [
(../source4/torture/smb2/streams.c:1224) RENAME_INFORMATION -
NT_STATUS_SHARING_VIOLATION (should be NT_STATUS_OK)
]

It looks like it should require DELETE_ACCESS, but that is already
tested elsewhere.

Perhaps it should be testing that SHARE_DELETE is available?

Maybe this is something Jeremy is already working on.

-- 
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)


More information about the samba-technical mailing list