diff options
| author | Mohammed Azhar Padariyakam <mpadariy@redhat.com> | 2017-11-03 00:38:17 +0530 | 
|---|---|---|
| committer | Amar Tumballi <amarts@redhat.com> | 2017-11-06 07:44:43 +0000 | 
| commit | e994c47e3b84f0509e380190ca3487f9036858d8 (patch) | |
| tree | 9b663d26e7825ba4294accd63d080990b4c2fb37 | |
| parent | 2891f993ac1cee6198661682039cf499a0824f2e (diff) | |
xlators/client-rpc-fops: Fix Coverity Issues
Coverity Id: 557,175,177,184,711,182,180,181,178 from [1]
Problem:
Unreachable code at client3_3_fgetxattr: 4771
Unreachable code at client3_3_fxattrop: 5087
Unreachable code at client3_3_getxattr: 4890
Unreachable code at client3_3_lookup: 3412
Unreachable code at client3_3_readdir: 5604
Unreachable code at client3_3_readdirp: 5704
Unreachable code at client3_3_xattrop: 4982
NULL checking deref ptr at client3_3_compound: 6045
Unused Value for op_errno at client3_3_getxattr: 4859
Solution:
Removed The Unreachable Dead Code
Removed NULL Check of dereferenced pointer
Removed assignment of op_errno which is overwritten
later
[1]:https://download.gluster.org/pub/gluster/glusterfs/static-analysis/master/glusterfs-coverity/2017-10-30-9aa574a5/html/
Change-Id: Ie26a026dd1475c892faf00dd844bf38092e0a780
BUG: 789278
Signed-off-by: Mohammed Azhar Padariyakam <mpadariy@redhat.com>
| -rw-r--r-- | xlators/protocol/client/src/client-rpc-fops.c | 36 | 
1 files changed, 13 insertions, 23 deletions
diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c index 803346b6aef..0561def3aab 100644 --- a/xlators/protocol/client/src/client-rpc-fops.c +++ b/xlators/protocol/client/src/client-rpc-fops.c @@ -3409,9 +3409,6 @@ unwind:          if (rsp_iobref)                  iobref_unref (rsp_iobref); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          return 0;  } @@ -4769,9 +4766,6 @@ client3_3_fgetxattr (call_frame_t *frame, xlator_t *this,  unwind:          CLIENT_STACK_UNWIND (fgetxattr, frame, -1, op_errno, NULL, NULL); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          if (rsp_iobref)                  iobref_unref (rsp_iobref); @@ -4849,6 +4843,12 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this,          if (args && args->name) {                  if (is_client_dump_locks_cmd ((char *)args->name)) {                          dict = dict_new (); + +                        if (!dict) { +                                op_errno = ENOMEM; +                                goto unwind; +                        } +                          ret = client_dump_locks ((char *)args->name,                                                   args->loc->inode,                                                   dict); @@ -4856,7 +4856,8 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this,                                  gf_msg (this->name, GF_LOG_WARNING, EINVAL,                                          PC_MSG_INVALID_ENTRY, "Client dump "                                          "locks failed"); -                                op_errno = EINVAL; +                                op_errno = ENOMEM; +                                goto unwind;                          }                          GF_ASSERT (dict); @@ -4887,14 +4888,15 @@ client3_3_getxattr (call_frame_t *frame, xlator_t *this,          return 0;  unwind: -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          if (rsp_iobref)                  iobref_unref (rsp_iobref);          CLIENT_STACK_UNWIND (getxattr, frame, op_ret, op_errno, dict, NULL); +        if (dict) { +                dict_unref(dict); +        } +          GF_FREE (req.xdata.xdata_val);          return 0; @@ -4988,9 +4990,6 @@ unwind:          GF_FREE (req.dict.dict_val); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          if (rsp_iobref)                  iobref_unref (rsp_iobref); @@ -5084,9 +5083,6 @@ unwind:          if (rsp_iobref)                  iobref_unref (rsp_iobref); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          GF_FREE (req.xdata.xdata_val);          return 0; @@ -5601,9 +5597,6 @@ unwind:          if (rsp_iobref)                  iobref_unref (rsp_iobref); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          CLIENT_STACK_UNWIND (readdir, frame, -1, op_errno, NULL, NULL);          GF_FREE (req.xdata.xdata_val); @@ -5701,9 +5694,6 @@ unwind:          if (rsp_iobref)                  iobref_unref (rsp_iobref); -        if (rsp_iobuf) -                iobuf_unref (rsp_iobuf); -          GF_FREE (req.dict.dict_val);          CLIENT_STACK_UNWIND (readdirp, frame, -1, op_errno, NULL, NULL); @@ -6042,7 +6032,7 @@ client3_3_compound (call_frame_t *frame, xlator_t *this, void *data)          GF_ASSERT (frame); -        if (!this || !data) +        if (!this)                  goto unwind;          memset (req_vector, 0, sizeof (req_vector));  | 
