[PATCH] Fix nasty vfs_fruit bug 13646

Jeremy Allison jra at samba.org
Mon Oct 29 23:24:06 UTC 2018


On Fri, Oct 26, 2018 at 04:59:24PM +0200, Ralph Böhme via samba-technical wrote:
> 
> thanks!
> 
> Turned out the order was not really correct as this patchset wasn't rebased
> onto the other ones.
> 
> Updated, rebased patchset attached.

Quick comment:


> From a04bcc4e0514b8f54af8dc936710f4a2096a0492 Mon Sep 17 00:00:00 2001
> From: Ralph Boehme <slow at samba.org>
> Date: Wed, 17 Oct 2018 10:54:10 +0200
> Subject: [PATCH 02/34] vfs_streams_xattr: consistently log dev/ino as hex
> 
> open_file_ntcreate() logs dev/ino in hex format if it hits a "dev/ino
> mismatch". Logging it consistently as hex helps debugging such mismatch
> issues.

The above doesn't seem true. According to master
I have:

        if (file_existed && !check_same_dev_ino(&saved_stat, &smb_fname->st)) {
                /*
                 * The file did exist, but some other (local or NFS)
                 * process either renamed/unlinked and re-created the
                 * file with different dev/ino after we walked the path,
                 * but before we did the open. We could retry the
                 * open but it's a rare enough case it's easier to
                 * just fail the open to prevent creating any problems
                 * in the open file db having the wrong dev/ino key.
                 */
                fd_close(fsp);
                DEBUG(1,("open_file_ntcreate: file %s - dev/ino mismatch. "
                        "Old (dev=0x%llu, ino =0x%llu). "
                        "New (dev=0x%llu, ino=0x%llu). Failing open "
                        " with NT_STATUS_ACCESS_DENIED.\n",
                         smb_fname_str_dbg(smb_fname),
                         (unsigned long long)saved_stat.st_ex_dev,
                         (unsigned long long)saved_stat.st_ex_ino,
                         (unsigned long long)smb_fname->st.st_ex_dev,
                         (unsigned long long)smb_fname->st.st_ex_ino));
                return NT_STATUS_ACCESS_DENIED;
        }

 - which is just wrong I think (sorry, this is my bad code I'm
 sure :-). Should be:

  %llx, not 0x%llu (which is 0x followed by unsigned int!).

So I'm going to NAK [PATCH 02/34] and continue reviewing
the rest, which (hopefully) doesn't depend on this.

Can you submit a follow-on patch that makes the printfs
consistent in open_file_ntcreate() and vfs_streams_xattr.c ?

Thanks,

Jeremy.



More information about the samba-technical mailing list