diff options
author | pjd <pjd@FreeBSD.org> | 2005-04-16 10:57:49 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-04-16 10:57:49 +0000 |
commit | 18f74c4005e884cea549f72a92687cbebb396d19 (patch) | |
tree | 4201d76bd3b15089180a153f179647770c3a6b92 | |
parent | 517573844397fe147b96449c7be39e1ca13359d5 (diff) | |
download | FreeBSD-src-18f74c4005e884cea549f72a92687cbebb396d19.zip FreeBSD-src-18f74c4005e884cea549f72a92687cbebb396d19.tar.gz |
- Plug memory leak.
- Fix two style nits.
Found by: Coverity Prevent analysis tool
Reviewed by: rwatson
MFC after: 1 week
-rw-r--r-- | sys/ufs/ufs/ufs_vnops.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c index 4b5fc7b..2ed5bff 100644 --- a/sys/ufs/ufs/ufs_vnops.c +++ b/sys/ufs/ufs/ufs_vnops.c @@ -1447,7 +1447,7 @@ ufs_mkdir(ap) UFS_VFREE(tvp, ip->i_number, dmode); vput(tvp); FREE(acl, M_ACL); - FREE(dacl, M_ACL); + FREE(dacl, M_ACL); return (error); } } else { @@ -1519,18 +1519,19 @@ ufs_mkdir(ap) default: FREE(acl, M_ACL); FREE(dacl, M_ACL); + dacl = acl = NULL; goto bad; } FREE(acl, M_ACL); FREE(dacl, M_ACL); + dacl = acl = NULL; } #endif /* !UFS_ACL */ /* * Initialize directory with "." and ".." from static template. */ - if (dvp->v_mount->mnt_maxsymlinklen > 0 - ) + if (dvp->v_mount->mnt_maxsymlinklen > 0) dtp = &mastertemplate; else dtp = (struct dirtemplate *)&omastertemplate; @@ -1587,6 +1588,12 @@ bad: VN_KNOTE_UNLOCKED(dvp, NOTE_WRITE | NOTE_LINK); *ap->a_vpp = tvp; } else { +#ifdef UFS_ACL + if (acl != NULL) + FREE(acl, M_ACL); + if (dacl != NULL) + FREE(dacl, M_ACL); +#endif dp->i_effnlink--; dp->i_nlink--; DIP_SET(dp, i_nlink, dp->i_nlink); |