From ed9e9c3b1867867a828020b8569c0c7ab1d3be24 Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Garg Date: Sat, 11 Apr 2015 01:03:13 +0530 Subject: glusterd: Coverity fix CID: 1293504 (Calling xlator_set_option without checking return value ) CID: 1293502 (Dereferencing a pointer that might be null xl when calling xlator_set_option) CID: 1293500 (Assigning value from dict_get_int32(dict, "type", &type) to ret here, but that stored value is overwritten before it can be used.) Change-Id: I5314fb399480df70bd77bc374e3b573f2efd5710 BUG: 1093692 Signed-off-by: Gaurav Kumar Garg Reviewed-on: http://review.gluster.org/10201 Tested-by: Gluster Build System Tested-by: NetBSD Build System Reviewed-by: Kaushal M --- xlators/mgmt/glusterd/src/glusterd-brick-ops.c | 9 ++++++++- xlators/mgmt/glusterd/src/glusterd-volgen.c | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c index c69d2ada238..4a39c6462fa 100644 --- a/xlators/mgmt/glusterd/src/glusterd-brick-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-brick-ops.c @@ -467,6 +467,11 @@ __glusterd_handle_add_brick (rpcsvc_request_t *req) } ret = dict_get_int32 (dict, "type", &type); + if (ret) { + gf_log (this->name, GF_LOG_ERROR, + "failed to get type from dictionary"); + goto out; + } goto brick_val; } @@ -547,9 +552,11 @@ brick_val: if (type != volinfo->type) { ret = dict_set_int32 (dict, "type", type); - if (ret) + if (ret) { gf_log (this->name, GF_LOG_ERROR, "failed to set the new type in dict"); + goto out; + } } ret = glusterd_op_begin_synctask (req, GD_OP_ADD_BRICK, dict); diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index a56d6d5ccca..58328b553a4 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -3397,12 +3397,22 @@ volume_volgen_graph_build_clusters_tier (volgen_graph_t *graph, hxl = first_of(graph); - volinfo->type = GF_CLUSTER_TYPE_TIER; + volinfo->type = GF_CLUSTER_TYPE_TIER; + xl = volgen_graph_add_nolink (graph, "cluster/tier", "%s", "tier-dht", 0); + if (!xl) + goto out; + gf_asprintf(&rule, "%s-hot-dht", st_volname); - xlator_set_option(xl, "rule", rule); - xlator_set_option(xl, "xattr-name", "trusted.tier-gfid"); + + ret = xlator_set_option(xl, "rule", rule); + if (ret) + goto out; + + ret = xlator_set_option(xl, "xattr-name", "trusted.tier-gfid"); + if (ret) + goto out; ret = volgen_xlator_link (xl, cxl); ret = volgen_xlator_link (xl, hxl); -- cgit