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

--- Comment #5 from John <[email protected]> 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.
-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to