diff options
| author | Chuck Lever <cel@FreeBSD.org> | 2006-05-29 20:07:40 +0000 |
|---|---|---|
| committer | Chuck Lever <cel@FreeBSD.org> | 2006-05-29 20:07:40 +0000 |
| commit | dbc5a89b6bf792967d4b227676013bb101ac68c2 (patch) | |
| tree | 7f304a687bed08c4e68c7dac449f20d418c28f77 /sys/nfs4client | |
| parent | c80c81a3d27e6d34fcfc42b6bbd30a5cb8487444 (diff) | |
Notes
Diffstat (limited to 'sys/nfs4client')
| -rw-r--r-- | sys/nfs4client/nfs4_dev.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/nfs4client/nfs4_dev.c b/sys/nfs4client/nfs4_dev.c index ab089b42255f..407f8b37212a 100644 --- a/sys/nfs4client/nfs4_dev.c +++ b/sys/nfs4client/nfs4_dev.c @@ -152,11 +152,12 @@ nfs4dev_reply(caddr_t addr) return EINVAL; } - if (m->msg_len == 0 || m->msg_len > NFS4DEV_MSG_MAX_DATALEN) { + if (m->msg_len < sizeof(*m) - NFS4DEV_MSG_MAX_DATALEN || + m->msg_len > NFS4DEV_MSG_MAX_DATALEN) { NFS4DEV_DEBUG("bad message length\n"); return EINVAL; } - + /* match the reply with a request */ mtx_lock(&nfs4dev_waitq_mtx); TAILQ_FOREACH(u, &nfs4dev_waitq, up_entry) { @@ -197,8 +198,10 @@ found: return 0; bad: - u->up_error = error; - wakeup(u); + if (u) { + u->up_error = error; + wakeup(u); + } return error; } |
