diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 14 | 
1 files changed, 11 insertions, 3 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index d078b00c98e..ab86041d8c1 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -628,14 +628,20 @@ glusterd_brickinfo_from_brick (char *brick,          char                    *hostname = NULL;          char                    *path = NULL;          char                    *tmp = NULL; +        char                    *tmpstr = NULL;          GF_ASSERT (brick);          GF_ASSERT (brickinfo); -        tmp = strdup (brick); +        tmp = gf_strdup (brick); +        if (!tmp) { +                gf_log ("glusterd", GF_LOG_ERROR, +                        "Out of memory"); +                goto out; +        } -        hostname = strtok (tmp, ":"); -        path = strtok (NULL, ":"); +        hostname = strtok_r (tmp, ":", &tmpstr); +        path = strtok_r (NULL, ":", &tmpstr);          GF_ASSERT (hostname);          GF_ASSERT (path); @@ -652,6 +658,8 @@ glusterd_brickinfo_from_brick (char *brick,          ret = 0;  out: +        if (tmp) +                GF_FREE (tmp);          gf_log ("", GF_LOG_DEBUG, "Returning %d", ret);          return ret;  }  | 
