From: Frank Lahm Date: Sat, 17 Nov 2012 11:30:18 +0000 (+0100) Subject: Fix a bug where copying packages to a Netatalk share fails X-Git-Url: https://arthur.barton.de/gitweb/?p=netatalk.git;a=commitdiff_plain;h=4e6168e72ebe215e356b46534ee4ce31179d8695 Fix a bug where copying packages to a Netatalk share fails The bug was caused by the 10.6 client trying to set the creation date on a symlink in the package. This caused our setmetadata routine to require a valid adouble handle for the symlink which is not possible as symlink may not allow creating an EA, depending on the filesystem. At least ZFS on Solaris doesnt. The fix is to check whether the adouble handle creation failed on a symlink and ignore the error. Fixes bug #469. --- diff --git a/NEWS b/NEWS index 8e192ea0..b87cf651 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ Changes in 3.0.2 * FIX: "basedir regex" was never able to treat symlink. If /home -> /usr/home, set "basedir regex = /usr/home". * FIX: Memory leak +* FIX: Copying packages to a Netatalk share could fail, bug #469 Changes in 3.0.1 ================ diff --git a/etc/afpd/file.c b/etc/afpd/file.c index 94030454..c4c55fb8 100644 --- a/etc/afpd/file.c +++ b/etc/afpd/file.c @@ -838,7 +838,7 @@ int setfilparams(const AFPObj *obj, struct vol *vol, uint16_t bitmap = f_bitmap; uint32_t cdate,bdate; u_char finder_buf[32]; - int symlinked = 0; + int symlinked = S_ISLNK(path->st.st_mode); #ifdef DEBUG LOG(log_debug9, logtype_afpd, "begin setfilparams:");