diff options
author | N Balachandran <nbalacha@redhat.com> | 2018-08-09 11:14:11 +0530 |
---|---|---|
committer | N Balachandran <nbalacha@redhat.com> | 2018-08-21 15:25:49 +0000 |
commit | fcd0c24abfccfe8d1faf64269a113596577355a8 (patch) | |
tree | d7dee1499793190d077a9d905c87f4fcc10dc294 /xlators/cluster | |
parent | 2ea2d68776e21f4bfa8d13fc79b7a7ef0818ad0b (diff) |
cluster/dht: coverity fixes
Fixes 1133997, 1370910, 1382387, 1382444,
1394635
Change-Id: Ie63ad47abd5519b9b9536da26b61ed4c9eaf2c75
updates: bz#789278
Signed-off-by: N Balachandran <nbalacha@redhat.com>
Diffstat (limited to 'xlators/cluster')
-rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 25 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 1 |
2 files changed, 14 insertions, 12 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 055c92fcbfc..9ae80b33fe3 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -1277,9 +1277,7 @@ dht_dir_xattr_heal (xlator_t *this, dht_local_t *local) int ret = -1; char gfid_local[GF_UUID_BUF_SIZE] = {0}; - if (local->gfid) { - gf_uuid_unparse(local->gfid, gfid_local); - } else { + if (gf_uuid_is_null (local->gfid)) { gf_msg (this->name, GF_LOG_ERROR, 0, DHT_MSG_DIR_XATTR_HEAL_FAILED, "No gfid exists for path %s " @@ -1288,6 +1286,7 @@ dht_dir_xattr_heal (xlator_t *this, dht_local_t *local) goto out; } + gf_uuid_unparse(local->gfid, gfid_local); copy = create_frame (this, this->ctx->pool); if (copy) { copy_local = dht_local_init (copy, &(local->loc), NULL, 0); @@ -1358,8 +1357,9 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this, if (!op_ret && gf_uuid_is_null (local->gfid)) { memcpy (local->gfid, stbuf->ia_gfid, 16); } - if (local->gfid) + if (!gf_uuid_is_null(local->gfid)) { gf_uuid_unparse(local->gfid, gfid_local); + } /* Check if the gfid is different for file from other node */ if (!op_ret && gf_uuid_compare (local->gfid, stbuf->ia_gfid)) { @@ -5198,7 +5198,8 @@ dht_getxattr (call_frame_t *frame, xlator_t *this, op_errno = ENOMEM; goto err; } - (void) strncpy (local->xsel, node_uuid_key, 256); + (void) snprintf (local->xsel, sizeof (local->xsel), "%s", + node_uuid_key); cnt = local->call_cnt = conf->subvolume_cnt; for (i = 0; i < cnt; i++) { STACK_WIND_COOKIE (frame, dht_find_local_subvol_cbk, @@ -5223,7 +5224,8 @@ dht_getxattr (call_frame_t *frame, xlator_t *this, op_errno = ENOMEM; goto err; } - (void) strncpy (local->xsel, node_uuid_key, 256); + (void) snprintf (local->xsel, sizeof (local->xsel), "%s", + node_uuid_key); cnt = local->call_cnt = conf->subvolume_cnt; for (i = 0; i < cnt; i++) { STACK_WIND_COOKIE (frame, dht_find_local_subvol_cbk, @@ -5251,7 +5253,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this, (XATTR_IS_PATHINFO (key) || (strcmp (key, GF_XATTR_NODE_UUID_KEY) == 0) || (strcmp (key, GF_XATTR_LIST_NODE_UUIDS_KEY) == 0))) { - (void) strncpy (local->xsel, key, 256); + (void) snprintf (local->xsel, sizeof (local->xsel), "%s", key); cnt = local->call_cnt = layout->cnt; for (i = 0; i < cnt; i++) { subvol = layout->list[i].xlator; @@ -5266,8 +5268,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this, if (key && ((strcmp (key, GF_XATTR_NODE_UUID_KEY) == 0) || XATTR_IS_PATHINFO (key))) { cached_subvol = local->cached_subvol; - (void) strncpy (local->xsel, key, 256); - + (void) snprintf (local->xsel, sizeof (local->xsel), "%s", key); local->call_cnt = 1; STACK_WIND_COOKIE (frame, dht_vgetxattr_cbk, cached_subvol, cached_subvol, cached_subvol->fops->getxattr, @@ -5617,8 +5618,9 @@ dht_dir_common_set_remove_xattr (call_frame_t *frame, xlator_t *this, loc_t *loc call_cnt = conf->subvolume_cnt; local->flags = flags; - if (local->gfid) + if (!gf_uuid_is_null (local->gfid)) { gf_uuid_unparse(local->gfid, gfid_local); + } if ((local->fop == GF_FOP_SETXATTR) || (local->fop == GF_FOP_FSETXATTR)) { @@ -9655,7 +9657,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this, { dht_local_t *local = NULL; dht_conf_t *conf = NULL; - int op_errno = -1, ret = -1; + int op_errno = EINVAL, ret = -1; xlator_t *hashed_subvol = NULL; char pgfid[GF_UUID_BUF_SIZE] = {0}; call_stub_t *stub = NULL; @@ -11060,7 +11062,6 @@ dht_ipc (call_frame_t *frame, xlator_t *this, int32_t op, dict_t *xdata) return 0; err: - op_errno = (op_errno == -1) ? errno : op_errno; DHT_STACK_UNWIND (ipc, frame, -1, op_errno, NULL); return 0; diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index e25064ea26e..d3cfc869f8d 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -4590,6 +4590,7 @@ gf_defrag_estimates_init (xlator_t *this, loc_t *loc, gf_msg (this->name, GF_LOG_ERROR, ret, 0, "Failed to " "create the file counter thread "); ret = -1; + goto out; } ret = 0; out: |