X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=libatalk%2Fadouble%2Fad_open.c;h=045c33c3b8f2f7c3631724168d80d57c1edfd7e9;hb=23e45f681099477f57a58740016ed666e8c4d284;hp=3e06e93fb6cfe7e715ac0de66be0d58cf0ae72a7;hpb=2eedbc8172785b9cc29af552ed1ca8627309f963;p=netatalk.git diff --git a/libatalk/adouble/ad_open.c b/libatalk/adouble/ad_open.c index 3e06e93f..045c33c3 100644 --- a/libatalk/adouble/ad_open.c +++ b/libatalk/adouble/ad_open.c @@ -521,10 +521,18 @@ int ad_valid_header_osx(const char *path) adosx.ad_version = ntohl(adosx.ad_version); if ((adosx.ad_magic != AD_MAGIC) || (adosx.ad_version != AD_VERSION2)) { - LOG(log_error, logtype_afpd, "ad_valid_header_osx: not an adouble:ox file"); + LOG(log_warning, logtype_afpd, "ad_valid_header_osx: not an adouble:osx file"); EC_FAIL; } + if (strncmp(buf + ADEDOFF_FILLER, "Mac OS X", strlen("Mac OS X")) == 0) + /* + * It's a split fork created by OS X, it's not our "own" ._ file + * and thus not a valid header in this context. + * We allow enumeration and access. + */ + EC_FAIL; + EC_CLEANUP: LOG(log_debug, logtype_afpd, "ad_valid_header_osx(\"%s\"): END: %d", fullpathname(path), ret); if (fd != -1)