diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/cluster/dht/src/dht-shared.c | 4 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/switch.c | 9 | ||||
| -rw-r--r-- | xlators/features/trash/src/trash.c | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-geo-rep.c | 7 | ||||
| -rw-r--r-- | xlators/nfs/server/src/mount3.c | 6 | ||||
| -rw-r--r-- | xlators/protocol/client/src/client.c | 7 | ||||
| -rw-r--r-- | xlators/storage/posix/src/posix-helpers.c | 3 | 
7 files changed, 34 insertions, 4 deletions
diff --git a/xlators/cluster/dht/src/dht-shared.c b/xlators/cluster/dht/src/dht-shared.c index e5a2367598b..e4c9d5c3dec 100644 --- a/xlators/cluster/dht/src/dht-shared.c +++ b/xlators/cluster/dht/src/dht-shared.c @@ -277,6 +277,10 @@ dht_parse_decommissioned_bricks(xlator_t *this, dht_conf_t *conf,          goto out;      dup_brick = gf_strdup(bricks); +    if (dup_brick == NULL) { +        goto out; +    } +      node = strtok_r(dup_brick, ",", &tmpstr);      while (node) {          for (i = 0; i < conf->subvolume_cnt; i++) { diff --git a/xlators/cluster/dht/src/switch.c b/xlators/cluster/dht/src/switch.c index a782fcdfbd2..207d109a025 100644 --- a/xlators/cluster/dht/src/switch.c +++ b/xlators/cluster/dht/src/switch.c @@ -610,9 +610,15 @@ set_switch_pattern(xlator_t *this, dht_conf_t *conf, const char *pattern_str)      /* Get the pattern for considering switch case.         "option block-size *avi:10MB" etc */      option_string = gf_strdup(pattern_str); +    if (option_string == NULL) { +        goto err; +    }      switch_str = strtok_r(option_string, ";", &tmp_str);      while (switch_str) {          dup_str = gf_strdup(switch_str); +        if (dup_str == NULL) { +            goto err; +        }          switch_opt = GF_CALLOC(1, sizeof(struct switch_struct),                                 gf_switch_mt_switch_struct);          if (!switch_opt) { @@ -647,6 +653,9 @@ set_switch_pattern(xlator_t *this, dht_conf_t *conf, const char *pattern_str)          if (childs) {              dup_childs = gf_strdup(childs); +            if (dup_childs == NULL) { +                goto err; +            }              child = strtok_r(dup_childs, ",", &tmp);              while (child) {                  if (gf_switch_valid_child(this, child)) { diff --git a/xlators/features/trash/src/trash.c b/xlators/features/trash/src/trash.c index d66843625d3..f96ed73c10a 100644 --- a/xlators/features/trash/src/trash.c +++ b/xlators/features/trash/src/trash.c @@ -170,7 +170,7 @@ store_eliminate_path(char *str, trash_elim_path **eliminate)      int ret = 0;      char *strtokptr = NULL; -    if (eliminate == NULL) { +    if ((str == NULL) || (eliminate == NULL)) {          ret = EINVAL;          goto out;      } diff --git a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c index 636ae354fb3..74275c60711 100644 --- a/xlators/mgmt/glusterd/src/glusterd-geo-rep.c +++ b/xlators/mgmt/glusterd/src/glusterd-geo-rep.c @@ -5968,7 +5968,7 @@ glusterd_get_slave_info(char *slave, char **slave_url, char **hostname,      GF_ASSERT(this);      ret = glusterd_urltransform_single(slave, "normalize", &linearr); -    if (ret == -1) { +    if ((ret == -1) || (linearr[0] == NULL)) {          ret = snprintf(errmsg, sizeof(errmsg) - 1, "Invalid Url: %s", slave);          errmsg[ret] = '\0';          *op_errstr = gf_strdup(errmsg); @@ -5979,7 +5979,10 @@ glusterd_get_slave_info(char *slave, char **slave_url, char **hostname,      tmp = strtok_r(linearr[0], "/", &save_ptr);      tmp = strtok_r(NULL, "/", &save_ptr); -    slave = strtok_r(tmp, ":", &save_ptr); +    slave = NULL; +    if (tmp != NULL) { +        slave = strtok_r(tmp, ":", &save_ptr); +    }      if (slave) {          ret = glusterd_geo_rep_parse_slave(slave, hostname, op_errstr);          if (ret) { diff --git a/xlators/nfs/server/src/mount3.c b/xlators/nfs/server/src/mount3.c index 396809cb2c2..734453ca6a2 100644 --- a/xlators/nfs/server/src/mount3.c +++ b/xlators/nfs/server/src/mount3.c @@ -3205,6 +3205,12 @@ mnt3_export_parse_auth_param(struct mnt3_export *exp, char *exportpath)      struct host_auth_spec *host = NULL;      int ret = 0; +    if (exportpath == NULL) { +        gf_msg(GF_MNT, GF_LOG_ERROR, EINVAL, NFS_MSG_PARSE_HOSTSPEC_FAIL, +               "Export path is NULL"); +        return -1; +    } +      /* Using exportpath directly in strtok_r because we want       * to strip off AUTH parameter from exportpath. */      token = strtok_r(exportpath, "(", &savPtr); diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index d7a0d1a1c9a..5aae09e6156 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -1232,9 +1232,12 @@ client_set_remote_options(char *value, xlator_t *this)      char *remote_port_str = NULL;      char *tmp = NULL;      int remote_port = 0; -    int ret = 0; +    int ret = -1;      dup_value = gf_strdup(value); +    if (dup_value == NULL) { +        goto out; +    }      host = strtok_r(dup_value, ":", &tmp);      subvol = strtok_r(NULL, ":", &tmp);      remote_port_str = strtok_r(NULL, ":", &tmp); @@ -1248,6 +1251,7 @@ client_set_remote_options(char *value, xlator_t *this)          if (ret) {              gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED,                     "failed to set remote-host with %s", host); +            GF_FREE(host_dup);              goto out;          }      } @@ -1262,6 +1266,7 @@ client_set_remote_options(char *value, xlator_t *this)          if (ret) {              gf_msg(this->name, GF_LOG_WARNING, 0, PC_MSG_DICT_SET_FAILED,                     "failed to set remote-host with %s", host); +            GF_FREE(subvol_dup);              goto out;          }      } diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c index 401f8ca8578..80f5fb8514c 100644 --- a/xlators/storage/posix/src/posix-helpers.c +++ b/xlators/storage/posix/src/posix-helpers.c @@ -390,6 +390,9 @@ _posix_get_marker_quota_contributions(posix_xattr_filler_t *filler, char *key)      int i = 0, ret = 0;      tmp_key = ptr = gf_strdup(key); +    if (tmp_key == NULL) { +        return -1; +    }      for (i = 0; i < 4; i++) {          token = strtok_r(tmp_key, ".", &saveptr);          tmp_key = NULL;  | 
