summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McDonald <danmcd@joyent.com>2020-05-01 17:07:54 -0400
committerDan McDonald <danmcd@joyent.com>2021-04-22 10:41:50 -0400
commitb13e800f7dab4b5ce8b5fd5a1f1c6a9bb9c878f2 (patch)
tree87cd900f03174d96069b9e39ade3532b4f81e3c4
parent1fff9123abf933fe860f7bdd74d94723fe457bd7 (diff)
downloadillumos-joyent-b13e800f7dab4b5ce8b5fd5a1f1c6a9bb9c878f2.tar.gz
Plug leak in NFSv4.x exchange_id's server scope
-rw-r--r--usr/src/uts/common/fs/nfs/nfs4x_srv.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs4x_srv.c b/usr/src/uts/common/fs/nfs/nfs4x_srv.c
index 854a8e1abe..2c8f509afe 100644
--- a/usr/src/uts/common/fs/nfs/nfs4x_srv.c
+++ b/usr/src/uts/common/fs/nfs/nfs4x_srv.c
@@ -538,12 +538,16 @@ rfs4x_exchange_id_free(nfs_resop4 *resop)
EXCHANGE_ID4res *resp = &resop->nfs_resop4_u.opexchange_id;
EXCHANGE_ID4resok *rok = &resp->EXCHANGE_ID4res_u.eir_resok4;
struct server_owner4 *sop = &rok->eir_server_owner;
+ struct eir_server_scope *ss = &rok->eir_server_scope;
nfs_impl_id4 *nip;
int len = 0;
/* Server Owner: major */
- if ((len = sop->so_major_id.so_major_id_len) != 0)
+ if ((len = sop->so_major_id.so_major_id_len) != 0) {
kmem_free(sop->so_major_id.so_major_id_val, len);
+ ASSERT(ss->eir_server_scope_len == len);
+ kmem_free(ss->eir_server_scope_val, len);
+ }
if ((nip = rok->eir_server_impl_id.eir_server_impl_id_val) != NULL) {
/* Immplementation */