diff options
Diffstat (limited to 'xlators/storage/posix/src')
| -rw-r--r-- | xlators/storage/posix/src/posix.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c index b3bc6be7f..447558a13 100644 --- a/xlators/storage/posix/src/posix.c +++ b/xlators/storage/posix/src/posix.c @@ -2567,10 +2567,9 @@ posix_getxattr (call_frame_t *frame, xlator_t *this,                  strcpy (key, name);                  size = sys_lgetxattr (real_path, key, NULL, 0); -                if (size == -1) { -                        op_ret = -1; +                if (size <= 0) {                          op_errno = errno; -                        goto out; +                        goto done;                  }                  value = GF_CALLOC (size + 1, sizeof(char), gf_posix_mt_char);                  if (!value) { @@ -2727,6 +2726,11 @@ posix_fgetxattr (call_frame_t *frame, xlator_t *this,                  strcpy (key, name);                  size = sys_fgetxattr (_fd, key, NULL, 0); +                if (size <= 0) { +                        op_errno = errno; +                        goto done; +                } +                  value = GF_CALLOC (size + 1, sizeof(char), gf_posix_mt_char);                  if (!value) {                          op_ret = -1;  | 
