diff options
author | trasz <trasz@FreeBSD.org> | 2009-10-05 19:56:56 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2009-10-05 19:56:56 +0000 |
commit | ef5e63d04acb443425738535accb3cb7831d253e (patch) | |
tree | 9cbc7d1521c344cddf7fef4df1cbc7a34f2faf03 /sys/kern/vfs_acl.c | |
parent | f010ce75e30c950a675faf835204bf416e2eaaa7 (diff) | |
download | FreeBSD-src-ef5e63d04acb443425738535accb3cb7831d253e.zip FreeBSD-src-ef5e63d04acb443425738535accb3cb7831d253e.tar.gz |
Fix NFSv4 ACLs on sparc64. Turns out that fuword(9) fetches 64 bits
instead of sizeof(int), and on sparc64 that resulted in fetching wrong
value for acl_maxcnt, which in turn caused __acl_get_link(2) to fail
with EINVAL.
PR: sparc64/139304
Submitted by: Dmitry Afanasiev <KOT at MATPOCKuH.Ru>
Diffstat (limited to 'sys/kern/vfs_acl.c')
-rw-r--r-- | sys/kern/vfs_acl.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_acl.c b/sys/kern/vfs_acl.c index ce1fa33..2dd64f4 100644 --- a/sys/kern/vfs_acl.c +++ b/sys/kern/vfs_acl.c @@ -161,7 +161,7 @@ acl_copyout(struct acl *kernel_acl, void *user_acl, acl_type_t type) break; default: - if (fuword((char *)user_acl + + if (fuword32((char *)user_acl + offsetof(struct acl, acl_maxcnt)) != ACL_MAX_ENTRIES) return (EINVAL); |