diff options
Diffstat (limited to 'fs')
-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 5eec4429970c..05e5f6f9f2b8 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -3937,8 +3937,13 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu | |||
3937 | goto out_free; | 3937 | goto out_free; |
3938 | } | 3938 | } |
3939 | nfs4_write_cached_acl(inode, pages, res.acl_data_offset, res.acl_len); | 3939 | nfs4_write_cached_acl(inode, pages, res.acl_data_offset, res.acl_len); |
3940 | if (buf) | 3940 | if (buf) { |
3941 | if (res.acl_len > buflen) { | ||
3942 | ret = -ERANGE; | ||
3943 | goto out_free; | ||
3944 | } | ||
3941 | _copy_from_pages(buf, pages, res.acl_data_offset, res.acl_len); | 3945 | _copy_from_pages(buf, pages, res.acl_data_offset, res.acl_len); |
3946 | } | ||
3942 | out_ok: | 3947 | out_ok: |
3943 | ret = res.acl_len; | 3948 | ret = res.acl_len; |
3944 | out_free: | 3949 | out_free: |