diff options
author | Sebastien Roy <seb@delphix.com> | 2013-05-21 15:31:47 -0800 |
---|---|---|
committer | Christopher Siden <chris.siden@delphix.com> | 2013-05-21 16:31:47 -0700 |
commit | e36d7b1181d9f0bc91b073751e5602af8e92c0ab (patch) | |
tree | 8b7d7c66a5c6cab5a01a1a06c52d86793ec209c4 /usr/src/uts/common/rpc | |
parent | 982e63f0dc541ca7cc5d69cf6504d5218a48434d (diff) | |
download | illumos-joyent-e36d7b1181d9f0bc91b073751e5602af8e92c0ab.tar.gz |
3630 NFS server should not allocate oversized buffers
Reviewed by: Jeff Biseda <jeff.biseda@delphix.com>
Reviewed by: Eric Schrock <Eric.Schrock@delphix.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
Approved by: Albert Lee <trisk@nexenta.com>
Diffstat (limited to 'usr/src/uts/common/rpc')
-rw-r--r-- | usr/src/uts/common/rpc/sec_gss/rpcsec_gss_misc.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/usr/src/uts/common/rpc/sec_gss/rpcsec_gss_misc.c b/usr/src/uts/common/rpc/sec_gss/rpcsec_gss_misc.c index c486a3b9df..4e23daca68 100644 --- a/usr/src/uts/common/rpc/sec_gss/rpcsec_gss_misc.c +++ b/usr/src/uts/common/rpc/sec_gss/rpcsec_gss_misc.c @@ -24,8 +24,6 @@ * All rights reserved. Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * Copyright 1993 OpenVision Technologies, Inc., All Rights Reserved. * @@ -34,6 +32,10 @@ * 1994/10/27 12:39:23 jik Exp $ */ +/* + * Copyright (c) 2013 by Delphix. All rights reserved. + */ + #include <sys/param.h> #include <sys/types.h> #include <sys/stream.h> @@ -142,7 +144,7 @@ __rpc_gss_wrap_data(service, qop, context, seq_num, out_xdrs, OM_uint32 major, minor; gss_buffer_desc in_buf, out_buf; XDR temp_xdrs; - char *mp; + char *temp_data; /* EXPORT DELETE START */ bool_t conf_state; /* EXPORT DELETE END */ @@ -154,10 +156,10 @@ __rpc_gss_wrap_data(service, qop, context, seq_num, out_xdrs, * We need an extra bit for the sequence number serialized first. */ size = xdr_sizeof(xdr_func, xdr_ptr) + BYTES_PER_XDR_UNIT; - mp = kmem_alloc(size, KM_SLEEP); + temp_data = kmem_alloc(size, KM_SLEEP); out_buf.length = 0; - xdrmem_create(&temp_xdrs, mp, size, XDR_ENCODE); + xdrmem_create(&temp_xdrs, temp_data, size, XDR_ENCODE); /* * serialize the sequence number into tmp memory @@ -221,7 +223,7 @@ __rpc_gss_wrap_data(service, qop, context, seq_num, out_xdrs, goto fail; ret = TRUE; fail: - kmem_free(mp, size); + kmem_free(temp_data, size); if (out_buf.length != 0) (void) gss_release_buffer(&minor, &out_buf); return (ret); |