]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/unix.c
afpd: umask handling, bug #576
[netatalk.git] / etc / afpd / unix.c
index a42a6ab9093fde4f923e43510474d52ad58334b4..e928fda93f7f70624a367c544d36d4f7c3189e95 100644 (file)
@@ -229,7 +229,8 @@ int setdirunixmode(const struct vol *vol, char *name, mode_t mode)
     LOG(log_debug, logtype_afpd, "setdirunixmode('%s', mode:%04o) {v_dperm:%04o}",
         fullpathname(name), mode, vol->v_dperm);
 
-    mode |= (vol->v_dperm | DIRBITS) & ~vol->v_umask;
+    mode |= vol->v_dperm | DIRBITS;
+    mode &= ~vol->v_umask;
 
     if (dir_rx_set(mode)) {
        /* extending right? dir first then .AppleDouble in rf_setdirmode */