summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/common-utils.c
diff options
context:
space:
mode:
authorGaurav Yadav <gyadav@redhat.com>2017-05-22 23:25:47 +0530
committerJeff Darcy <jeff@pl.atyp.us>2017-05-26 12:08:36 +0000
commit23930326e0378edace9c8c41e8ae95931a2f68ba (patch)
treefd207e8285c59526731c7bd17645c2213d4a0b84 /libglusterfs/src/common-utils.c
parent90df37558d488f9a794f62ed74ec6d72879ed895 (diff)
libglusterfs : Fix crash in glusterd while peer probing
glusterd crashes when port is being set explcitly to a range which is outside greater than short data type range. Eg. sysctl net.ipv4.ip_local_reserved_ports="49152-49156" In above case glusterd crashes while parsing the port. With this fix glusterd will be able to handle port range between INT_MIN to INT_MAX Change-Id: I7c75ee67937b0e3384502973d96b1c36c89e0fe1 BUG: 1454418 Signed-off-by: Gaurav Yadav <gyadav@redhat.com> Reviewed-on: https://review.gluster.org/17359 Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Samikshan Bairagya <samikshan@gmail.com> Reviewed-by: Atin Mukherjee <amukherj@redhat.com> Reviewed-by: Niels de Vos <ndevos@redhat.com> Reviewed-by: Jeff Darcy <jeff@pl.atyp.us>
Diffstat (limited to 'libglusterfs/src/common-utils.c')
-rw-r--r--libglusterfs/src/common-utils.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c
index 635d092bc7d..65557fefba2 100644
--- a/libglusterfs/src/common-utils.c
+++ b/libglusterfs/src/common-utils.c
@@ -3181,14 +3181,14 @@ gf_ports_reserved (char *blocked_port, unsigned char *ports, uint32_t ceiling)
{
gf_boolean_t result = _gf_false;
char *range_port = NULL;
- int16_t tmp_port1 = -1;
- int16_t tmp_port2 = -1;
+ int32_t tmp_port1 = -1;
+ int32_t tmp_port2 = -1;
if (strstr (blocked_port, "-") == NULL) {
/* get rid of the new line character*/
if (blocked_port[strlen(blocked_port) -1] == '\n')
blocked_port[strlen(blocked_port) -1] = '\0';
- if (gf_string2int16 (blocked_port, &tmp_port1) == 0) {
+ if (gf_string2int32 (blocked_port, &tmp_port1) == 0) {
if (tmp_port1 > ceiling
|| tmp_port1 < 0) {
gf_msg ("glusterfs-socket", GF_LOG_WARNING, 0,
@@ -3214,7 +3214,7 @@ gf_ports_reserved (char *blocked_port, unsigned char *ports, uint32_t ceiling)
result = _gf_true;
goto out;
}
- if (gf_string2int16 (range_port, &tmp_port1) == 0) {
+ if (gf_string2int32 (range_port, &tmp_port1) == 0) {
if (tmp_port1 > ceiling)
tmp_port1 = ceiling;
if (tmp_port1 < 0)
@@ -3228,7 +3228,7 @@ gf_ports_reserved (char *blocked_port, unsigned char *ports, uint32_t ceiling)
/* get rid of the new line character*/
if (range_port[strlen(range_port) -1] == '\n')
range_port[strlen(range_port) - 1] = '\0';
- if (gf_string2int16 (range_port, &tmp_port2) == 0) {
+ if (gf_string2int32 (range_port, &tmp_port2) == 0) {
if (tmp_port2 > ceiling)
tmp_port2 = ceiling;
if (tmp_port2 < 0)