From 61941a984964308b09c7fc1b3438fb99d0b3c917 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 26 Nov 2015 18:04:54 +0100 Subject: 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 --- common/stringhelp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'common/stringhelp.c') diff --git a/common/stringhelp.c b/common/stringhelp.c index 6748d1eab..e8b990a13 100644 --- a/common/stringhelp.c +++ b/common/stringhelp.c @@ -1328,6 +1328,11 @@ strtokenize (const char *string, const char *delim) 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 * 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. */ - while (text[strlen (text) - 1] == ' ') - text[strlen (text) - 1] = '\0'; + trim_trailing_chars (text, strlen (text), " "); /* 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'; return text; -- cgit v1.2.3