diff options
author | Marcel Telka <marcel.telka@nexenta.com> | 2015-09-10 18:35:46 +0200 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2015-09-14 11:04:04 -0700 |
commit | 7bbfa3ee1f517d6d5762f10047886094cea843a1 (patch) | |
tree | fa667c83f225a2b355f7b04ff1976e53c58fcea6 /usr/src | |
parent | 020c6b3e8852eb03df56f9b3fc96ffdc28975b1f (diff) | |
download | illumos-joyent-7bbfa3ee1f517d6d5762f10047886094cea843a1.tar.gz |
6217 nfsauth_cache_get() should allocate/free maxlen for addr, not len
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/nfs/nfs_auth.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/usr/src/uts/common/fs/nfs/nfs_auth.c b/usr/src/uts/common/fs/nfs/nfs_auth.c index 3410340581..c9b432ea6e 100644 --- a/usr/src/uts/common/fs/nfs/nfs_auth.c +++ b/usr/src/uts/common/fs/nfs/nfs_auth.c @@ -837,7 +837,7 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, claddr = svc_getrpccaller(req->rq_xprt); addr = *claddr; - addr.buf = kmem_alloc(addr.len, KM_SLEEP); + addr.buf = kmem_alloc(addr.maxlen, KM_SLEEP); bcopy(claddr->buf, addr.buf, claddr->len); SVC_GETADDRMASK(req->rq_xprt, SVC_TATTR_ADDRMASK, (void **)&taddrmask); @@ -868,9 +868,9 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, * Initialize the new auth_cache_clnt */ nc->authc_addr = addr; - nc->authc_addr.buf = kmem_alloc(addr.len, + nc->authc_addr.buf = kmem_alloc(addr.maxlen, KM_NOSLEEP | KM_NORMALPRI); - if (addr.len != 0 && nc->authc_addr.buf == NULL) { + if (addr.maxlen != 0 && nc->authc_addr.buf == NULL) { kmem_free(nc, sizeof (*nc)); goto retrieve; } @@ -891,7 +891,7 @@ nfsauth_cache_get(struct exportinfo *exi, struct svc_req *req, int flavor, avl_destroy(&nc->authc_tree); rw_destroy(&nc->authc_lock); - kmem_free(nc->authc_addr.buf, nc->authc_addr.len); + kmem_free(nc->authc_addr.buf, nc->authc_addr.maxlen); kmem_free(nc, sizeof (*nc)); } } @@ -1051,7 +1051,7 @@ wait: p->auth_state = NFS_AUTH_WAITING; mutex_exit(&p->auth_lock); - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); addr = p->auth_clnt->authc_addr; atomic_inc_uint(&nfsauth_cache_miss); @@ -1196,7 +1196,7 @@ wait: uint_t, nach, time_t, refresh); - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); } return (access); @@ -1225,7 +1225,7 @@ retrieve: } } - kmem_free(addr.buf, addr.len); + kmem_free(addr.buf, addr.maxlen); return (access); } @@ -1419,7 +1419,7 @@ nfsauth_free_clnt_node(struct auth_cache_clnt *p) nfsauth_free_node(node); avl_destroy(&p->authc_tree); - kmem_free(p->authc_addr.buf, p->authc_addr.len); + kmem_free(p->authc_addr.buf, p->authc_addr.maxlen); rw_destroy(&p->authc_lock); kmem_free(p, sizeof (*p)); |