summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-op-sm.c
diff options
context:
space:
mode:
authorMohit Agrawal <moagrawa@redhat.com>2017-02-08 12:20:55 +0530
committerAtin Mukherjee <amukherj@redhat.com>2017-02-08 11:48:00 -0500
commit9ac193a19b0ca6d6548aeafa5c915b26396f8697 (patch)
tree59587e66a7019b0fb95887b12fc9af4a26076716 /xlators/mgmt/glusterd/src/glusterd-op-sm.c
parentc57808c4e36547233d20e31b54c818c8d77fa646 (diff)
glusterd: glusterd is crashed at the time of stop volume
Problem: glusterd is crashed at the time of stop volume due to overflow of pidfile array after build rpm with default options. Solution: To avoid the crash update the pidfile array size. Test: To test the patch followed below procedure 1) Setup 1*2 environment and start the volume 2) Stop the volume Before apply the patch glusterd is crashed. Note: The crash is happened only after build rpm with rpmbuild -ba <spec> because _FORTIFY_SOURCE is enabled. This option tries to figure out possible overflow scenarios like the bug here and crash the process. BUG: 1420202 Change-Id: I58a006bc0727843a7ed02a10b4ebd5dca39eae67 Signed-off-by: Mohit Agrawal <moagrawa@redhat.com> Reviewed-on: https://review.gluster.org/16560 NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> Smoke: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: N Balachandran <nbalacha@redhat.com> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-op-sm.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-op-sm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
index 6bc01f702cc..8e73d9072ab 100644
--- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c
+++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c
@@ -6143,7 +6143,7 @@ glusterd_bricks_select_stop_volume (dict_t *dict, char **op_errstr,
glusterd_brickinfo_t *brickinfo = NULL;
glusterd_pending_node_t *pending_node = NULL;
glusterd_conf_t *conf = THIS->private;
- char pidfile[1024];
+ char pidfile[PATH_MAX] = {0,};
ret = glusterd_op_stop_volume_args_get (dict, &volname, &flags);
if (ret)
@@ -6207,7 +6207,7 @@ glusterd_bricks_select_remove_brick (dict_t *dict, char **op_errstr,
int32_t command = 0;
int32_t force = 0;
glusterd_conf_t *conf = THIS->private;
- char pidfile[1024];
+ char pidfile[PATH_MAX] = {0,};
ret = dict_get_str (dict, "volname", &volname);