diff options
| author | Atin Mukherjee <amukherj@redhat.com> | 2016-06-28 15:32:17 +0530 | 
|---|---|---|
| committer | Atin Mukherjee <amukherj@redhat.com> | 2016-07-04 03:19:56 -0700 | 
| commit | 021813ca53762f09cb9f43d740a6aaab5659aa51 (patch) | |
| tree | 33addd90d28badc7f0e5f9e9e1a69f3a7f199c01 | |
| parent | 3541810cdf6bc3914c4f7531500bc0ae32954f84 (diff) | |
glusterd/cli: coverity fixes
Backport of http://review.gluster.org/#/c/14818/
A downstream coverity run has revealed few of the following coverity defects.
Since the downstream code is a clone of a specific upstream branch the defects
hold true for the upstream as well.
Defect type: NEGATIVE_RETURNS
xlators/mgmt/glusterd/src/glusterd-rpc-ops.c:641: negative_returns: "op_errno"
is passed to a parameter that cannot be negative.
Defect type: BUFFER_SIZE_WARNING
xlators/mgmt/glusterd/src/glusterd-volume-ops.c:2124: buffer_size_warning:
Calling strncpy with a maximum size argument of 261 bytes on destination array
"volinfo->volname" of size 261 bytes might leave the destination string
unterminated.
Defect type: BUFFER_SIZE_WARNING
xlators/mgmt/glusterd/src/glusterd-volgen.c:4888: buffer_size_warning: Calling
strncpy with a maximum size argument of 261 bytes on destination array
"volinfo->volname" of size 261 bytes might leave the destination string
unterminated.
Defect type: STRING_OVERFLOW
xlators/mgmt/glusterd/src/glusterd-volgen.c:3449: string_overflow: You might
overrun the 256 byte destination string "tmp_volname" by writing 261 bytes from
"volinfo->volname".
Defect type: BUFFER_SIZE_WARNING
xlators/mgmt/glusterd/src/glusterd-utils.c:3392: buffer_size_warning: Calling
strncpy with a maximum size argument of 261 bytes on destination array
"new_volinfo->volname" of size 261 bytes might leave the destination string
unterminated.
Defect type: NO_EFFECT
xlators/mgmt/glusterd/src/glusterd-utils.c:7359: remediation: Was
"rebal->rebalance_id" formerly declared as a pointer?
Defect type: USE_AFTER_FREE
xlators/mgmt/glusterd/src/glusterd-utils.c:7115: pass_freed_arg: Passing freed
pointer "volinfo" as an argument to "glusterd_friend_contains_vol_bricks".
Defect type: DEADCODE
cli/src/cli-cmd-parser.c:1767: dead_error_begin: Execution cannot reach this
statement: "ret = -1;".
Change-Id: Ie941bdf31923e2f39618dd94bfae16fdb3ad65f1
BUG: 1352281
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/14818
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/14850
Reviewed-by: Prashanth Pai <ppai@redhat.com>
| -rw-r--r-- | cli/src/cli-cmd-parser.c | 3 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rpc-ops.c | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 31 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 5 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 2 | 
5 files changed, 21 insertions, 22 deletions
diff --git a/cli/src/cli-cmd-parser.c b/cli/src/cli-cmd-parser.c index 574cca1895b..26b02cf6a92 100644 --- a/cli/src/cli-cmd-parser.c +++ b/cli/src/cli-cmd-parser.c @@ -1778,9 +1778,6 @@ cli_cmd_volume_tier_parse (const char **words, int wordcount,                          ret = -1;                          goto out;                  } -        } else { -                ret = -1; -                goto out;          }          ret = dict_set_int32 (dict, "rebalance-command", command); diff --git a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c index f7e8cfe248c..73646ec4bfc 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c @@ -559,7 +559,7 @@ __glusterd_friend_remove_cbk (struct rpc_req * req, struct iovec *iov,          glusterd_friend_sm_event_type_t event_type = GD_FRIEND_EVENT_NONE;          glusterd_peerinfo_t             *peerinfo = NULL;          int32_t                         op_ret = -1; -        int32_t                         op_errno = -1; +        int32_t                         op_errno = 0;          glusterd_probe_ctx_t            *ctx = NULL;          gf_boolean_t                    move_sm_now = _gf_true; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 454ffdc5603..682a403a45f 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -3455,7 +3455,7 @@ glusterd_import_volinfo (dict_t *peer_data, int count,          ret = glusterd_volinfo_new (&new_volinfo);          if (ret)                  goto out; -        strncpy (new_volinfo->volname, volname, sizeof (new_volinfo->volname)); +        strncpy (new_volinfo->volname, volname, strlen (volname));          memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "%s%d.type", prefix, count); @@ -7129,19 +7129,6 @@ glusterd_friend_remove_cleanup_vols (uuid_t uuid)          cds_list_for_each_entry_safe (volinfo, tmp_volinfo, &priv->volumes,                                        vol_list) { -                if (glusterd_friend_contains_vol_bricks (volinfo, uuid) == 2) { -                        gf_msg (THIS->name, GF_LOG_INFO, 0, -                                GD_MSG_STALE_VOL_DELETE_INFO, -                                "Deleting stale volume %s", volinfo->volname); -                        ret = glusterd_delete_volume (volinfo); -                        if (ret) { -                                gf_msg (THIS->name, GF_LOG_ERROR, 0, -                                        GD_MSG_STALE_VOL_REMOVE_FAIL, -                                        "Error deleting stale volume"); -                                goto out; -                        } -                } -                  if (!glusterd_friend_contains_vol_bricks (volinfo,                                                            MY_UUID)) {                          /*Stop snapd daemon service if snapd daemon is running*/ @@ -7155,6 +7142,20 @@ glusterd_friend_remove_cleanup_vols (uuid_t uuid)                                  }                          }                  } + +                if (glusterd_friend_contains_vol_bricks (volinfo, uuid) == 2) { +                        gf_msg (THIS->name, GF_LOG_INFO, 0, +                                GD_MSG_STALE_VOL_DELETE_INFO, +                                "Deleting stale volume %s", volinfo->volname); +                        ret = glusterd_delete_volume (volinfo); +                        if (ret) { +                                gf_msg (THIS->name, GF_LOG_ERROR, 0, +                                        GD_MSG_STALE_VOL_REMOVE_FAIL, +                                        "Error deleting stale volume"); +                                goto out; +                        } +                } +          }          /* Reconfigure all daemon services upon peer detach */ @@ -7386,7 +7387,7 @@ glusterd_defrag_info_set (glusterd_volinfo_t *volinfo, dict_t *dict, int cmd,          rebal->defrag_status = status;          rebal->op = op; -        if (!rebal->rebalance_id) +        if (gf_uuid_is_null (rebal->rebalance_id))                  return;          if (is_origin_glusterd (dict)) { diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index ac9a4def054..7d263b43aeb 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -3529,7 +3529,8 @@ build_distribute:                  goto out;          }          if (volinfo->tier_info.hot_brick_count) { -                strcpy (tmp_volname, volinfo->volname); +                strncpy (tmp_volname, volinfo->volname, +                         strlen (volinfo->volname));                  if (volinfo->tier_info.cur_tier_hot)                          strcat (volinfo->volname, "-hot");                  else @@ -4958,7 +4959,7 @@ glusterd_is_valid_volfpath (char *volname, char *brick)                  ret = 0;                  goto out;          } -        strncpy (volinfo->volname, volname, sizeof (volinfo->volname)); +        strncpy (volinfo->volname, volname, strlen (volname));          get_brick_filepath (volfpath, volinfo, brickinfo, NULL);          ret = ((strlen(volfpath) < PATH_MAX) && diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index 60577505cfc..72e14b0429d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -2156,7 +2156,7 @@ glusterd_op_create_volume (dict_t *dict, char **op_errstr)                  goto out;          } -        strncpy (volinfo->volname, volname, sizeof(volinfo->volname)); +        strncpy (volinfo->volname, volname, strlen (volname));          GF_ASSERT (volinfo->volname);          ret = dict_get_int32 (dict, "type", &volinfo->type);  | 
