diff options
author | Shwetha Acharya <sacharya@redhat.com> | 2018-10-01 12:39:48 +0530 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2018-10-12 03:14:17 +0000 |
commit | 522dcab94ae9938c072cf50062b507cedafdc011 (patch) | |
tree | 8165ec73784ed002348a09f87e79fa8d331abfb6 /xlators/mgmt | |
parent | 62faf7d37bd8b6be6657b1e3b61f92eac5b84653 (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.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-scrub-svc.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-shd-svc.c | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 8 |
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) |