summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2023-08-07 10:04:29 +0000
committernicm <nicm>2023-08-07 10:04:29 +0000
commita5fd80bbc3e6a65ce0e3bce4cf820db3ae0f3165 (patch)
treeb1c596fd06ec9a80b689c7f07612d958ce4b4b7a
parentb13c2307497c1d905c07e7c21cd78b2c223fa4ee (diff)
Trim can generate strings longer than the original if there are many #s,
so create a bigger buffer. Reported by Robert Morris.
-rw-r--r--format-draw.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/format-draw.c b/format-draw.c
index 1a7e60b3..3ea1f52f 100644
--- a/format-draw.c
+++ b/format-draw.c
@@ -1083,7 +1083,7 @@ format_trim_left(const char *expanded, u_int limit)
struct utf8_data ud;
enum utf8_state more;
- out = copy = xcalloc(1, strlen(expanded) + 1);
+ out = copy = xcalloc(2, strlen(expanded) + 1);
while (*cp != '\0') {
if (width >= limit)
break;
@@ -1150,7 +1150,7 @@ format_trim_right(const char *expanded, u_int limit)
return (xstrdup(expanded));
skip = total_width - limit;
- out = copy = xcalloc(1, strlen(expanded) + 1);
+ out = copy = xcalloc(2, strlen(expanded) + 1);
while (*cp != '\0') {
if (*cp == '#') {
end = format_leading_hashes(cp, &n, &leading_width);