summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorPaul Wernau <Paul.Wernau@Sun.COM>2008-09-15 17:45:12 -0400
committerPaul Wernau <Paul.Wernau@Sun.COM>2008-09-15 17:45:12 -0400
commit875a4abcc45eff5fe347622080ebe938010f5acb (patch)
tree5882b51ca19f5a91bcdb4fcd37efb6c2e14f7f13 /usr/src
parent76e208e35703efcca9e8c717b30ee3174480f0d8 (diff)
downloadillumos-joyent-875a4abcc45eff5fe347622080ebe938010f5acb.tar.gz
6747227 c2_bsm/kernel audit_pf_policy() may leak zone holds
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/c2/audit.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/usr/src/uts/common/c2/audit.c b/usr/src/uts/common/c2/audit.c
index af09cd5f2d..cb459a8bca 100644
--- a/usr/src/uts/common/c2/audit.c
+++ b/usr/src/uts/common/c2/audit.c
@@ -2390,12 +2390,15 @@ audit_pf_policy(int cmd, cred_t *cred, netstack_t *ns, char *tun,
nszone = zone_find_by_id(netstackid_to_zoneid(
ns->netstack_stackid));
- if (strncmp(cred->cr_zone->zone_name, nszone->zone_name,
- ZONENAME_MAX) != 0) {
- token_t *ztoken;
+ if (nszone != NULL) {
+ if (strncmp(cred->cr_zone->zone_name, nszone->zone_name,
+ ZONENAME_MAX) != 0) {
+ token_t *ztoken;
- ztoken = au_to_zonename(0, nszone);
- au_write((caddr_t *)&ad, ztoken);
+ ztoken = au_to_zonename(0, nszone);
+ au_write((caddr_t *)&ad, ztoken);
+ }
+ zone_rele(nszone);
}
if (tun != NULL) {