diff options
author | nicm <nicm> | 2023-08-07 10:04:29 +0000 |
---|---|---|
committer | nicm <nicm> | 2023-08-07 10:04:29 +0000 |
commit | a5fd80bbc3e6a65ce0e3bce4cf820db3ae0f3165 (patch) | |
tree | b1c596fd06ec9a80b689c7f07612d958ce4b4b7a /format-draw.c | |
parent | b13c2307497c1d905c07e7c21cd78b2c223fa4ee (diff) |
Trim can generate strings longer than the original if there are many #s,
so create a bigger buffer. Reported by Robert Morris.
Diffstat (limited to 'format-draw.c')
-rw-r--r-- | format-draw.c | 4 |
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); |