diff options
author | Weston Andros Adamson <dros@netapp.com> | 2012-10-23 10:43:44 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-11-04 14:43:42 -0500 |
commit | 332e008a44d1ab6ca85b2214578f2f89af04a2fc (patch) | |
tree | 3a17b1839ba3c7e3fea88150ad5404e814bb2635 /net/sunrpc | |
parent | b8a13d039cbf7aec3b486fc0ae3996a5449afed2 (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')
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 5 |
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 | } |