[Bug 8308] rsync: exclude.c:532: change_local_filter_dir: Assertion `dir_depth < 4096/2+1' failed

samba-bugs at samba.org samba-bugs at samba.org
Tue Apr 8 22:03:12 MDT 2014


https://bugzilla.samba.org/show_bug.cgi?id=8308

--- Comment #5 from John <jss at mensa.org.au> 2014-04-09 04:03:11 UTC ---

woops, it's not just a 64bit pointer being treated as 32.

When you run macro F_DEPTH(file) you're actually subtracting the size of a
32bit integer, ie 4 bytes, but file is a pointer to structures like this:

struct file_struct {
    const char *dirname;    /* The dir info inside the transfer */
    time_t modtime;        /* When the item was last modified */
    uint32 len32;        /* Lowest 32 bits of the file's length */
    uint16 mode;        /* The item's type and permissions */
    uint16 flags;        /* The FLAG_* bits for this item */
    const char basename[1];    /* The basename (AKA filename) follows */
};

The size of file_struct is 32 bytes

So when you use the F_DEPTH macro you're subtracting 4 bytes from a pointer
that should be decremented 32 bytes at a time.... 

Still crazy.

-- 
Configure bugmail: https://bugzilla.samba.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the rsync mailing list