summaryrefslogtreecommitdiffstats
path: root/net/nfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/nfs.c')
-rw-r--r--net/nfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/nfs.c b/net/nfs.c
index 63573098d7..591417e0de 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -533,7 +533,7 @@ static int nfs_readlink_reply(unsigned char *pkt, unsigned len)
static int nfs_read_reply(unsigned char *pkt, unsigned len)
{
- int rlen;
+ unsigned int rlen;
uint32_t *data;
int ret;
@@ -552,6 +552,8 @@ static int nfs_read_reply(unsigned char *pkt, unsigned len)
rlen = ntohl(net_read_uint32(data + 18));
+ rlen = max_t(unsigned int, rlen, len - 19);
+
ret = write(net_store_fd, (char *)(data + 19), rlen);
if (ret < 0) {
perror("write");