diff options
| author | Gaurav Yadav <gyadav@redhat.com> | 2017-05-22 23:25:47 +0530 | 
|---|---|---|
| committer | Shyamsundar Ranganathan <srangana@redhat.com> | 2017-06-13 14:20:32 +0000 | 
| commit | 169a64f7066a5d079c60e816a81325094ed8ad74 (patch) | |
| tree | 94677ac3ccd0fdeacfea6867fb9b866aa46f347c /libglusterfs | |
| parent | 5936593b8240867b1114384b68148994b82c9d3f (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
> 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>
Change-Id: I7c75ee67937b0e3384502973d96b1c36c89e0fe1
BUG: 1459759
Signed-off-by: Gaurav Yadav <gyadav@redhat.com>
Reviewed-on: https://review.gluster.org/17496
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Samikshan Bairagya <samikshan@gmail.com>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 6ea4fd14374..1b24d3ee6fe 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -3039,14 +3039,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, @@ -3072,7 +3072,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) @@ -3086,7 +3086,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)  | 
