X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libatalk%2Facl%2Funix.c;h=cc69d8ade3299bd20fbced73d3c5485b0f4f8132;hb=939eb9da6116bd502cdae97f84541993848071b4;hp=6284935173d87c7cced42ce80419977cc1df40f8;hpb=321a0107c48da7b3fbf895a2b32244174c1ff39c;p=netatalk.git diff --git a/libatalk/acl/unix.c b/libatalk/acl/unix.c index 62849351..cc69d8ad 100644 --- a/libatalk/acl/unix.c +++ b/libatalk/acl/unix.c @@ -308,6 +308,14 @@ int posix_chmod(const char *name, mode_t mode) { /* Call chmod() first because there might be some special bits to be set which * aren't related to access control. */ +#ifdef BSD4_4 + /* + * On FreeBSD chmod_acl() ends up in here too, but on + * FreeBSD sine ~9.1 with ZFS doesn't allow setting the g+s bit. + * Fixes PR #491. + */ + mode &= 0777; +#endif ret = chmod(name, mode); if (ret)