diff options
author | Paul Wernau <Paul.Wernau@Sun.COM> | 2008-09-15 17:45:12 -0400 |
---|---|---|
committer | Paul Wernau <Paul.Wernau@Sun.COM> | 2008-09-15 17:45:12 -0400 |
commit | 875a4abcc45eff5fe347622080ebe938010f5acb (patch) | |
tree | 5882b51ca19f5a91bcdb4fcd37efb6c2e14f7f13 /usr/src/uts/common/c2/audit.c | |
parent | 76e208e35703efcca9e8c717b30ee3174480f0d8 (diff) | |
download | illumos-joyent-875a4abcc45eff5fe347622080ebe938010f5acb.tar.gz |
6747227 c2_bsm/kernel audit_pf_policy() may leak zone holds
Diffstat (limited to 'usr/src/uts/common/c2/audit.c')
-rw-r--r-- | usr/src/uts/common/c2/audit.c | 13 |
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) { |