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/rpcb_clnt.c | |
parent | b8a13d039cbf7aec3b486fc0ae3996a5449afed2 (diff) | |
download | lwn-332e008a44d1ab6ca85b2214578f2f89af04a2fc.tar.gz lwn-332e008a44d1ab6ca85b2214578f2f89af04a2fc.zip |
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.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, u32 len; len = strlen(string); - BUG_ON(len > maxstrlen); + WARN_ON_ONCE(len > maxstrlen); + if (len > maxstrlen) + /* truncate and hope for the best */ + len = maxstrlen; p = xdr_reserve_space(xdr, 4 + len); xdr_encode_opaque(p, string, len); } |