diff options
Diffstat (limited to 'fs/nfs/nfs4proc.c')
| -rw-r--r-- | fs/nfs/nfs4proc.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 992233561db..92bd799eee0 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -3782,8 +3782,13 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu  		goto out_free;  	}  	nfs4_write_cached_acl(inode, pages, res.acl_data_offset, res.acl_len); -	if (buf) +	if (buf) { +		if (res.acl_len > buflen) { +			ret = -ERANGE; +			goto out_free; +		}  		_copy_from_pages(buf, pages, res.acl_data_offset, res.acl_len); +	}  out_ok:  	ret = res.acl_len;  out_free:  |