Package: netatalk
Version: 2.1.4-1
Severity: important
Tags: patch upstream

This happens with netatalk on sid and squeeze at least. There is a patch from 
upstream at:
<http://sourceforge.net/tracker/index.php?func=detail&aid=3110004&group_id=8642&atid=108642>

After applying the patch to 2.1.4-1 source, things work as they should.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: sparc (sparc64)

Kernel: Linux 2.6.33
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/bash

Versions of packages netatalk depends on:
ii  libc6                   2.11.2-7         Embedded GNU C Library: Shared lib
ii  libcomerr2              1.41.12-2        common error description library
ii  libcrack2               2.8.16-4         pro-active password checker librar
ii  libcups2                1.4.4-7          Common UNIX Printing System(tm) - 
ii  libdb4.8                4.8.30-2         Berkeley v4.8 Database Libraries [
ii  libgcrypt11             1.4.5-2          LGPL Crypto library - runtime libr
ii  libgnutls26             2.8.6-1          the GNU TLS library - runtime libr
ii  libgssapi-krb5-2        1.8.3+dfsg-2     MIT Kerberos runtime libraries - k
ii  libk5crypto3            1.8.3+dfsg-2     MIT Kerberos runtime libraries - C
ii  libkrb5-3               1.8.3+dfsg-2     MIT Kerberos runtime libraries
ii  libpam-modules          1.1.1-6.1        Pluggable Authentication Modules f
ii  libpam0g                1.1.1-6.1        Pluggable Authentication Modules l
ii  libwrap0                7.6.q-19         Wietse Venema's TCP wrappers libra
ii  netbase                 4.43             Basic TCP/IP networking system
ii  perl                    5.10.1-16        Larry Wall's Practical Extraction 
ii  zlib1g                  1:1.2.3.4.dfsg-3 compression library - runtime

Versions of packages netatalk recommends:
ii  cracklib-runtime        2.8.16-4         runtime support for password check
ii  db4.8-util              4.8.30-2         Berkeley v4.8 Database Utilities
pn  libpam-cracklib         <none>           (no description available)
ii  lsof                    4.81.dfsg.1-1+b1 List open files
ii  procps                  1:3.2.8-9        /proc file system utilities
pn  rc                      <none>           (no description available)

Versions of packages netatalk suggests:
ii  db4.2-util                 4.2.52+dfsg-5 Berkeley v4.2 Database Utilities
pn  db4.7-util                 <none>        (no description available)
pn  groff                      <none>        (no description available)
pn  quota                      <none>        (no description available)
pn  texlive-base-bin           <none>        (no description available)

-- Configuration Files:
/etc/default/netatalk changed:
AFPD_MAX_CLIENTS=4
ATALK_NAME=zervio
ATALK_MAC_CHARSET='MAC_ROMAN'
ATALK_UNIX_CHARSET='LOCALE'
AFPD_UAMLIST="-U uams_dhx.so,uams_dhx2.so"
AFPD_GUEST=nobody
ATALKD_RUN=no
PAPD_RUN=no
TIMELORD_RUN=no
A2BOOT_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
ATALK_BGROUND=no
export ATALK_MAC_CHARSET
export ATALK_UNIX_CHARSET

/etc/netatalk/AppleVolumes.default changed:
:DEFAULT: options:upriv,usedots
~/ "$u" cnidscheme:dbd
/home/alfredo/TimeMachine "TimeMachine" allow:alfredo options:tm
/home/alicia/TimeMachine "Time Machine" allow:alicia options:tm

/etc/netatalk/afpd.conf changed:
- -tcp -uamlist uams_dhx2_pam.so -nosavepassword -advertise_ssh -timeout 1


-- no debconf information
diff --git a/libatalk/adouble/ad_attr.c b/libatalk/adouble/ad_attr.c
index ce1e1fa..8b3a320 100644
--- a/libatalk/adouble/ad_attr.c
+++ b/libatalk/adouble/ad_attr.c
@@ -60,7 +60,7 @@ int ad_getattr(const struct adouble *ad, u_int16_t *attr)
 /* ----------------- */
 int ad_setattr(const struct adouble *ad, const u_int16_t attribute)
 {
-    u_int16_t *fflags;
+    uint16_t fflags;
 
     /* we don't save open forks indicator */
     u_int16_t attr = attribute & ~htons(ATTRBIT_DOPEN | ATTRBIT_ROPEN);
@@ -78,22 +78,24 @@ int ad_setattr(const struct adouble *ad, const u_int16_t attribute)
     }
 #if AD_VERSION == AD_VERSION2
     else if (ad->ad_version == AD_VERSION2) {
-        if (ad_getentryoff(ad, ADEID_AFPFILEI)) {
+        if (ad_getentryoff(ad, ADEID_AFPFILEI) && ad_getentryoff(ad, ADEID_FINDERI)) {
             memcpy(ad_entry(ad, ADEID_AFPFILEI) + AFPFILEIOFF_ATTR, &attr, sizeof(attr));
             
             /* Now set opaque flags in FinderInfo too */
-            fflags = (u_int16_t *)ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRFLAGOFF;
+            memcpy(&fflags, ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRFLAGOFF, 2);
             if (attr & htons(ATTRBIT_INVISIBLE))
-                *fflags |= htons(FINDERINFO_INVISIBLE);
+                fflags |= htons(FINDERINFO_INVISIBLE);
             else
-                *fflags &= htons(~FINDERINFO_INVISIBLE);
+                fflags &= htons(~FINDERINFO_INVISIBLE);
 
             /* See above comment in ad_getattr() */
             if (attr & htons(ATTRBIT_MULTIUSER)) {
                 if ( ! (ad->ad_adflags & ADFLAGS_DIR) )
-                    *fflags |= htons(FINDERINFO_ISHARED);
+                    fflags |= htons(FINDERINFO_ISHARED);
             } else
-                    *fflags &= htons(~FINDERINFO_ISHARED);
+                    fflags &= htons(~FINDERINFO_ISHARED);
+
+            memcpy(ad_entry(ad, ADEID_FINDERI) + FINDERINFO_FRFLAGOFF, &fflags, 2);
         }
     }
 #endif

Reply via email to