mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
common: Fix off-by-one access in the new format_text.
* common/stringhelp.c (format_text): Use existsing fucntion to trim trailing spaces. Fix off-by-one access. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
d226e67856
commit
61941a9849
@ -1328,6 +1328,11 @@ strtokenize (const char *string, const char *delim)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Format a string so that it fits within about TARGET_COLS columns.
|
||||||
|
If IN_PLACE is 0, then TEXT is copied to a new buffer, which is
|
||||||
|
returned. Otherwise, TEXT is modified in place and returned.
|
||||||
|
Normally, target_cols will be 72 and max_cols is 80. */
|
||||||
char *
|
char *
|
||||||
format_text (char *text, int in_place, int target_cols, int max_cols)
|
format_text (char *text, int in_place, int target_cols, int max_cols)
|
||||||
{
|
{
|
||||||
@ -1448,10 +1453,9 @@ format_text (char *text, int in_place, int target_cols, int max_cols)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Chop off any trailing space. */
|
/* Chop off any trailing space. */
|
||||||
while (text[strlen (text) - 1] == ' ')
|
trim_trailing_chars (text, strlen (text), " ");
|
||||||
text[strlen (text) - 1] = '\0';
|
|
||||||
/* If we inserted the trailing newline, then remove it. */
|
/* If we inserted the trailing newline, then remove it. */
|
||||||
if (! copied_last_space && text[strlen (text) - 1] == '\n')
|
if (! copied_last_space && *text && text[strlen (text) - 1] == '\n')
|
||||||
text[strlen (text) - 1] = '\0';
|
text[strlen (text) - 1] = '\0';
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
|
@ -148,12 +148,10 @@ char **strsplit (char *string, char delim, char replacement, int *count);
|
|||||||
/* Tokenize STRING using the set of delimiters in DELIM. */
|
/* Tokenize STRING using the set of delimiters in DELIM. */
|
||||||
char **strtokenize (const char *string, const char *delim);
|
char **strtokenize (const char *string, const char *delim);
|
||||||
|
|
||||||
/* Format a string so that it fits within about TARGET_COLS columns.
|
/* Format a string so that it fits within about TARGET_COLS columns. */
|
||||||
If IN_PLACE is 0, then TEXT is copied to a new buffer, which is
|
|
||||||
returned. Otherwise, TEXT is modified in place and returned.
|
|
||||||
Normally, target_cols will be 72 and max_cols is 80. */
|
|
||||||
char *format_text (char *text, int in_place, int target_cols, int max_cols);
|
char *format_text (char *text, int in_place, int target_cols, int max_cols);
|
||||||
|
|
||||||
|
|
||||||
/*-- mapstrings.c --*/
|
/*-- mapstrings.c --*/
|
||||||
const char *map_static_macro_string (const char *string);
|
const char *map_static_macro_string (const char *string);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user