mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Fix panic in zfs_getsecattr
OpenSolaris onnv-revision: 10295:f7a18a1e9610 Obtained from: OpenSolaris (Bug ID 6870564) Approved by: pjd, delphij (mentor) MFC after: 3 days
This commit is contained in:
parent
9dac494ce6
commit
726db0af89
1 changed files with 11 additions and 4 deletions
|
|
@ -1984,8 +1984,6 @@ zfs_getacl(znode_t *zp, vsecattr_t *vsecp, boolean_t skipaclchk, cred_t *cr)
|
|||
if (mask & VSA_ACE) {
|
||||
size_t aclsz;
|
||||
|
||||
zfs_acl_node_t *aclnode = list_head(&aclp->z_acl);
|
||||
|
||||
aclsz = count * sizeof (ace_t) +
|
||||
sizeof (ace_object_t) * largeace;
|
||||
|
||||
|
|
@ -1996,8 +1994,17 @@ zfs_getacl(znode_t *zp, vsecattr_t *vsecp, boolean_t skipaclchk, cred_t *cr)
|
|||
zfs_copy_fuid_2_ace(zp->z_zfsvfs, aclp, cr,
|
||||
vsecp->vsa_aclentp, !(mask & VSA_ACE_ALLTYPES));
|
||||
else {
|
||||
bcopy(aclnode->z_acldata, vsecp->vsa_aclentp,
|
||||
count * sizeof (ace_t));
|
||||
zfs_acl_node_t *aclnode;
|
||||
void *start = vsecp->vsa_aclentp;
|
||||
|
||||
for (aclnode = list_head(&aclp->z_acl); aclnode;
|
||||
aclnode = list_next(&aclp->z_acl, aclnode)) {
|
||||
bcopy(aclnode->z_acldata, start,
|
||||
aclnode->z_size);
|
||||
start = (caddr_t)start + aclnode->z_size;
|
||||
}
|
||||
ASSERT((caddr_t)start - (caddr_t)vsecp->vsa_aclentp ==
|
||||
aclp->z_acl_bytes);
|
||||
}
|
||||
}
|
||||
if (mask & VSA_ACE_ACLFLAGS) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue