summaryrefslogtreecommitdiffstats
path: root/0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch')
-rw-r--r--0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch44
1 files changed, 0 insertions, 44 deletions
diff --git a/0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch b/0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch
deleted file mode 100644
index c6a47831a..000000000
--- a/0001-Make-__xfs_xattr_put_listen-preperly-report-errors.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 791cc43b36eb1f88166c8505900cad1b43c7fe1a Mon Sep 17 00:00:00 2001
-From: Artem Savkov <asavkov@redhat.com>
-Date: Wed, 14 Sep 2016 07:40:35 +1000
-Subject: [PATCH] Make __xfs_xattr_put_listen preperly report errors.
-
-Commit 2a6fba6 "xfs: only return -errno or success from attr ->put_listent"
-changes the returnvalue of __xfs_xattr_put_listen to 0 in case when there is
-insufficient space in the buffer assuming that setting context->count to -1
-would be enough, but all of the ->put_listent callers only check seen_enough.
-This results in a failed assertion:
-XFS: Assertion failed: context->count >= 0, file: fs/xfs/xfs_xattr.c, line: 175
-in insufficient buffer size case.
-
-This is only reproducible with at least 2 xattrs and only when the buffer
-gets depleted before the last one.
-
-Furthermore if buffersize is such that it is enough to hold the last xattr's
-name, but not enough to hold the sum of preceeding xattr names listxattr won't
-fail with ERANGE, but will suceed returning last xattr's name without the
-first character. The first character end's up overwriting data stored at
-(context->alist - 1).
-
-Signed-off-by: Artem Savkov <asavkov@redhat.com>
-Reviewed-by: Dave Chinner <dchinner@redhat.com>
-Signed-off-by: Dave Chinner <david@fromorbit.com>
----
- fs/xfs/xfs_xattr.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/fs/xfs/xfs_xattr.c b/fs/xfs/xfs_xattr.c
-index ea62245..6290093 100644
---- a/fs/xfs/xfs_xattr.c
-+++ b/fs/xfs/xfs_xattr.c
-@@ -147,6 +147,7 @@ __xfs_xattr_put_listent(
- arraytop = context->count + prefix_len + namelen + 1;
- if (arraytop > context->firstu) {
- context->count = -1; /* insufficient space */
-+ context->seen_enough = 1;
- return 0;
- }
- offset = (char *)context->alist + context->count;
---
-2.7.4
-