summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt
diff options
context:
space:
mode:
authorShwetha Acharya <sacharya@redhat.com>2018-10-01 12:39:48 +0530
committerAtin Mukherjee <amukherj@redhat.com>2018-10-12 03:14:17 +0000
commit522dcab94ae9938c072cf50062b507cedafdc011 (patch)
tree8165ec73784ed002348a09f87e79fa8d331abfb6 /xlators/mgmt
parent62faf7d37bd8b6be6657b1e3b61f92eac5b84653 (diff)
mgmt/glusterd: NULL pointer dereferencing clang fix
Problem: dereferencing of this->name; volinfo and xl can be null. Solution: Replaced this->name with apropriate names in few places, added a null check to avoid dereferencing of volinfo, and introduced a goto out statement, such that null pointer value is not passed to the function volgen_xlator_link when xl becomes NULL. Updates: bz#1622665 Change-Id: I77616bd23f58328cb6dbe681914a028991d49abb Signed-off-by: Shwetha Acharya <sacharya@redhat.com>
Diffstat (limited to 'xlators/mgmt')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-nfs-svc.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-op-sm.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-scrub-svc.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-shd-svc.c2
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-volgen.c8
5 files changed, 8 insertions, 8 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-nfs-svc.c b/xlators/mgmt/glusterd/src/glusterd-nfs-svc.c
index 927743e0122..9bc46a9bb63 100644
--- a/xlators/mgmt/glusterd/src/glusterd-nfs-svc.c
+++ b/xlators/mgmt/glusterd/src/glusterd-nfs-svc.c
@@ -220,6 +220,6 @@ glusterd_nfssvc_reconfigure()
ret = priv->nfs_svc.manager(&(priv->nfs_svc), NULL, PROC_START_NO_WAIT);
out:
- gf_msg_debug(this->name, 0, "Returning %d", ret);
+ gf_msg_debug(this ? this->name : "glusterd", 0, "Returning %d", ret);
return ret;
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
index ca09d5afe20..c8343fb0a2d 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -1216,7 +1216,7 @@ glusterd_op_stage_set_volume(dict_t *dict, char **op_errstr)
*/
if ((dict_getn(dict, "is-special-key", SLEN("is-special-key")) ==
NULL) &&
- (volinfo->status != GLUSTERD_STATUS_NONE)) {
+ volinfo && (volinfo->status != GLUSTERD_STATUS_NONE)) {
snprintf(errstr, sizeof(errstr),
" 'gluster "
"volume set <VOLNAME> %s {enable, "
diff --git a/xlators/mgmt/glusterd/src/glusterd-scrub-svc.c b/xlators/mgmt/glusterd/src/glusterd-scrub-svc.c
index 2c88a945bfe..f7c23ce57c3 100644
--- a/xlators/mgmt/glusterd/src/glusterd-scrub-svc.c
+++ b/xlators/mgmt/glusterd/src/glusterd-scrub-svc.c
@@ -200,6 +200,6 @@ manager:
ret = priv->scrub_svc.manager(&(priv->scrub_svc), NULL, PROC_START_NO_WAIT);
out:
- gf_msg_debug(this->name, 0, "Returning %d", ret);
+ gf_msg_debug(this ? this->name : "glusterd", 0, "Returning %d", ret);
return ret;
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
index 606f5912733..a096649fb44 100644
--- a/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
+++ b/xlators/mgmt/glusterd/src/glusterd-shd-svc.c
@@ -249,6 +249,6 @@ manager:
ret = priv->shd_svc.manager(&(priv->shd_svc), NULL, PROC_START_NO_WAIT);
out:
- gf_msg_debug(this->name, 0, "Returning %d", ret);
+ gf_msg_debug(this ? this->name : "glusterd", 0, "Returning %d", ret);
return ret;
}
diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c
index 3e291e046e3..13b289fdcb8 100644
--- a/xlators/mgmt/glusterd/src/glusterd-volgen.c
+++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c
@@ -3383,12 +3383,12 @@ volgen_link_bricks(volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
if ((i % sub_count) == 0) {
xl = volgen_graph_add_nolink(graph, xl_type, xl_namefmt, volname,
j);
- if (!xl) {
- ret = -1;
- goto out;
- }
j++;
}
+ if (!xl) {
+ ret = -1;
+ goto out;
+ }
ret = volgen_xlator_link(xl, trav);
if (ret)