|
@@ -397,13 +397,10 @@ static int decode_cb_sequence4resok(struct xdr_stream *xdr,
|
|
|
struct nfsd4_callback *cb)
|
|
|
{
|
|
|
struct nfsd4_session *session = cb->cb_clp->cl_cb_session;
|
|
|
- struct nfs4_sessionid id;
|
|
|
- int status;
|
|
|
+ int status = -ESERVERFAULT;
|
|
|
__be32 *p;
|
|
|
u32 dummy;
|
|
|
|
|
|
- status = -ESERVERFAULT;
|
|
|
-
|
|
|
/*
|
|
|
* If the server returns different values for sessionID, slotID or
|
|
|
* sequence number, the server is looney tunes.
|
|
@@ -411,9 +408,8 @@ static int decode_cb_sequence4resok(struct xdr_stream *xdr,
|
|
|
p = xdr_inline_decode(xdr, NFS4_MAX_SESSIONID_LEN + 4 + 4 + 4 + 4);
|
|
|
if (unlikely(p == NULL))
|
|
|
goto out_overflow;
|
|
|
- memcpy(id.data, p, NFS4_MAX_SESSIONID_LEN);
|
|
|
- if (memcmp(id.data, session->se_sessionid.data,
|
|
|
- NFS4_MAX_SESSIONID_LEN) != 0) {
|
|
|
+
|
|
|
+ if (memcmp(p, session->se_sessionid.data, NFS4_MAX_SESSIONID_LEN)) {
|
|
|
dprintk("NFS: %s Invalid session id\n", __func__);
|
|
|
goto out;
|
|
|
}
|