vfs_fruit: add check for OS X filler in FinderInfo conversion
authorRalph Boehme <slow@samba.org>
Mon, 8 Oct 2018 10:51:37 +0000 (12:51 +0200)
committerKarolin Seeger <kseeger@samba.org>
Thu, 18 Oct 2018 10:59:20 +0000 (12:59 +0200)
This ensures that the function only acts on AppleDouble files created by
macOS and not AppleDouble files created by us that are already in the
correct format (only using the Resource Fork).

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

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit 5598e6bc3583a88f474afa2996d1f9362d1bd9fb)

source3/modules/vfs_fruit.c

index 562ea01a174457f39b617d9c1f8293df4baad3ac..5441a3552e0823c7fedda6926556be9c4d2ca9b1 100644 (file)
@@ -1169,6 +1169,12 @@ static bool ad_convert_finderinfo(struct adouble *ad,
        ssize_t nwritten;
        NTSTATUS status;
        int saved_errno = 0;
+       int cmp;
+
+       cmp = memcmp(ad->ad_filler, AD_FILLER_TAG_OSX, ADEDLEN_FILLER);
+       if (cmp != 0) {
+               return true;
+       }
 
        p_ad = ad_get_entry(ad, ADEID_FINDERI);
        if (p_ad == NULL) {