fix invalid read with quotes functions

+ ft_free_cmd_arr()
This commit is contained in:
LuckyLaszlo
2021-11-14 04:59:38 +01:00
parent 106af37b58
commit 1e682f796d
6 changed files with 33 additions and 27 deletions

View File

@@ -64,7 +64,7 @@ static size_t count_word(char const *s, char c)
{
while (quote_state_change(&quote_state, &s[i]))
i++;
if (s[i] != c || quote_state)
if (s[i] && (s[i] != c || quote_state))
i++;
}
}
@@ -152,7 +152,7 @@ static void fill_arr(char const *s, char c, char **str_arr)
{
while (quote_state_change(&quote_state, &s[i]))
str_arr[arr_i][char_i++] = s[i++];
if (s[i] != c || quote_state)
if (s[i] && (s[i] != c || quote_state))
str_arr[arr_i][char_i++] = s[i++];
}
str_arr[arr_i][char_i] = '\0'; //superflu si ft_calloc

View File

@@ -37,7 +37,8 @@ char *ft_strdup_quotes(const char *s)
{
while (quote_state_change(&quote_state, &s[i]))
i++;
dup[i_dup++] = s[i++];
if (s[i])
dup[i_dup++] = s[i++];
}
return (dup);
}