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 /xlators | |
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>
Diffstat (limited to 'xlators')
-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 |
4 files changed, 21 insertions, 19 deletions
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); |