diff options
author | rwatson <rwatson@FreeBSD.org> | 2002-10-14 19:55:49 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2002-10-14 19:55:49 +0000 |
commit | 67d568c288dae99ff29a150239c4a33bccf0d980 (patch) | |
tree | 840c5b0b07bb8106b11d9a860079c90069bb72cd /sys/ufs | |
parent | 9d00a4a781eb15e7fa43415462c01f82087ded69 (diff) | |
download | FreeBSD-src-67d568c288dae99ff29a150239c4a33bccf0d980.zip FreeBSD-src-67d568c288dae99ff29a150239c4a33bccf0d980.tar.gz |
Fix two memory leaks in error conditions involving the UFS ACL code:
if failures occur, make sure that we release both the default ACL
and access ACL storage during new object creation.
Spotted by: phk and his pet flexelint
Sponsored by: DARPA, Network Associates Laboratories
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index 70d3b1a..c0da28f 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -1480,6 +1480,8 @@ ufs_mkdir(ap) default: UFS_VFREE(tvp, ip->i_number, dmode); vput(tvp); + FREE(acl, M_ACL); + FREE(dacl, M_ACL); return (error); } #else /* !UFS_ACL */ @@ -2381,6 +2383,8 @@ ufs_makeinode(mode, dvp, vpp, cnp) default: UFS_VFREE(tvp, ip->i_number, mode); vput(tvp); + FREE(acl, M_ACL); + acl = NULL; return (error); } #else /* !UFS_ACL */ |