aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/rpcb_clnt.c
diff options
context:
space:
mode:
authorWeston Andros Adamson <dros@netapp.com>2012-10-23 10:43:44 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-04 14:43:42 -0500
commit332e008a44d1ab6ca85b2214578f2f89af04a2fc (patch)
tree3a17b1839ba3c7e3fea88150ad5404e814bb2635 /net/sunrpc/rpcb_clnt.c
parentb8a13d039cbf7aec3b486fc0ae3996a5449afed2 (diff)
SUNRPC: remove BUG_ON from encode_rpcb_string
Replace BUG_ON() with WARN_ON_ONCE() and truncate the encoded string if len > max. Signed-off-by: Weston Andros Adamson <dros@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/rpcb_clnt.c')
-rw-r--r--net/sunrpc/rpcb_clnt.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index a70acae496e4..411f332de0b3 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -884,7 +884,10 @@ static void encode_rpcb_string(struct xdr_stream *xdr, const char *string,
884 u32 len; 884 u32 len;
885 885
886 len = strlen(string); 886 len = strlen(string);
887 BUG_ON(len > maxstrlen); 887 WARN_ON_ONCE(len > maxstrlen);
888 if (len > maxstrlen)
889 /* truncate and hope for the best */
890 len = maxstrlen;
888 p = xdr_reserve_space(xdr, 4 + len); 891 p = xdr_reserve_space(xdr, 4 + len);
889 xdr_encode_opaque(p, string, len); 892 xdr_encode_opaque(p, string, len);
890} 893}