diff options
Diffstat (limited to 'libglusterfs/src/common-utils.c')
| -rw-r--r-- | libglusterfs/src/common-utils.c | 125 | 
1 files changed, 5 insertions, 120 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 374b76b0410..9dd030aa6c4 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -105,8 +105,9 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks)          char            dir[PATH_MAX]   = {0,};          struct stat     stbuf           = {0,}; -        strncpy (dir, path, (PATH_MAX - 1)); -        dir[PATH_MAX - 1] = '\0'; +        const int path_len = min(strlen(path), PATH_MAX -1); + +        snprintf(dir, path_len + 1, "%s", path);          i = (dir[0] == '/')? 1: 0;          do { @@ -792,73 +793,6 @@ gf_trim (char *string)  }  int -gf_strsplit (const char *str, const char *delim, -             char ***tokens, int *token_count) -{ -        char *_running = NULL; -        char *running = NULL; -        char *token = NULL; -        char **token_list = NULL; -        int count = 0; -        int i = 0; -        int j = 0; - -        if (str == NULL || delim == NULL || tokens == NULL || token_count == NULL) { -                gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL, -                                  LG_MSG_INVALID_ARG, "argument invalid"); -                return -1; -        } - -        _running = gf_strdup (str); -        if (_running == NULL) -                return -1; - -        running = _running; - -        while ((token = strsep (&running, delim)) != NULL) { -                if (token[0] != '\0') -                        count++; -        } -        GF_FREE (_running); - -        _running = gf_strdup (str); -        if (_running == NULL) -                return -1; - -        running = _running; - -        if ((token_list = GF_CALLOC (count, sizeof (char *), -                                     gf_common_mt_char)) == NULL) { -                GF_FREE (_running); -                return -1; -        } - -        while ((token = strsep (&running, delim)) != NULL) { -                if (token[0] == '\0') -                        continue; - -                token_list[i] = gf_strdup (token); -                if (token_list[i] == NULL) -                        goto free_exit; -                i++; -        } - -        GF_FREE (_running); - -        *tokens = token_list; -        *token_count = count; -        return 0; - -free_exit: -        GF_FREE (_running); -        for (j = 0; j < i; j++) -                GF_FREE (token_list[j]); - -        GF_FREE (token_list); -        return -1; -} - -int  gf_strstr (const char *str, const char *delim, const char *match)  {          char *tmp      = NULL; @@ -2108,54 +2042,6 @@ nwstrtail (char *str, char *pattern)          return *pattern ? NULL : str;  } -void -skipword (char **s) -{ -        if (!*s) -                return; - -        skipwhite (s); - -        while (!isspace(**s)) -                (*s)++; -} - -char * -get_nth_word (const char *str, int n) -{ -        char           buf[4096] = {0}; -        char          *start     = NULL; -        char          *word      = NULL; -        int            i         = 0; -        int            word_len  = 0; -        const char    *end       = NULL; - -        if (!str) -                goto out; - -        snprintf (buf, sizeof (buf), "%s", str); -        start = buf; - -        for (i = 0; i < n-1; i++) -                skipword (&start); - -        skipwhite (&start); -        end = strpbrk ((const char *)start, " \t\n\0"); - -        if (!end) -                goto out; - -        word_len = labs (end - start); - -        word = GF_CALLOC (1, word_len + 1, gf_common_mt_strdup); -        if (!word) -                goto out; - -        strncpy (word, start, word_len); -        *(word + word_len) = '\0'; - out: -        return word; -}  /**   * token_iter_init -- initialize tokenization @@ -3013,7 +2899,7 @@ gf_strip_whitespace (char *str, int len)          GF_ASSERT (str); -        new_str = GF_CALLOC (1, len + 1, gf_common_mt_char); +        new_str = GF_MALLOC (len + 1, gf_common_mt_char);          if (new_str == NULL)                  return -1; @@ -3024,8 +2910,7 @@ gf_strip_whitespace (char *str, int len)          new_str[new_len] = '\0';          if (new_len != len) { -                memset (str, 0, len); -                strncpy (str, new_str, new_len); +                snprintf(str, new_len + 1, "%s", new_str);          }          GF_FREE (new_str);  | 
