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 992233561dbd..92bd799eee01 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 | |||
3782 | goto out_free; | 3782 | goto out_free; |
3783 | } | 3783 | } |
3784 | nfs4_write_cached_acl(inode, pages, res.acl_data_offset, res.acl_len); | 3784 | nfs4_write_cached_acl(inode, pages, res.acl_data_offset, res.acl_len); |
3785 | if (buf) | 3785 | if (buf) { |
3786 | if (res.acl_len > buflen) { | ||
3787 | ret = -ERANGE; | ||
3788 | goto out_free; | ||
3789 | } | ||
3786 | _copy_from_pages(buf, pages, res.acl_data_offset, res.acl_len); | 3790 | _copy_from_pages(buf, pages, res.acl_data_offset, res.acl_len); |
3791 | } | ||
3787 | out_ok: | 3792 | out_ok: |
3788 | ret = res.acl_len; | 3793 | ret = res.acl_len; |
3789 | out_free: | 3794 | out_free: |