diff options
author | nicm <nicm> | 2019-03-20 07:28:31 +0000 |
---|---|---|
committer | nicm <nicm> | 2019-03-20 07:28:31 +0000 |
commit | 458b87150b3fe989bb3d5d611f1d010a71839117 (patch) | |
tree | 3fa3fead16a630d7d42a5d9de4a1d23c052223ca | |
parent | ae46a19b8e2bafd7c3fc5cba99b9f430c8cf9b1c (diff) | |
download | rtmux-458b87150b3fe989bb3d5d611f1d010a71839117.tar.gz rtmux-458b87150b3fe989bb3d5d611f1d010a71839117.tar.bz2 rtmux-458b87150b3fe989bb3d5d611f1d010a71839117.zip |
Do not leak ranges on error.
-rw-r--r-- | format-draw.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/format-draw.c b/format-draw.c index 40ba27bf..ed50236f 100644 --- a/format-draw.c +++ b/format-draw.c @@ -577,7 +577,9 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base, end = format_skip(cp + 2, "]"); if (end == NULL) { log_debug("no terminating ] at '%s'", cp + 2); - return; + TAILQ_FOREACH_SAFE(fr, &frs, entry, fr1) + format_free_range(&frs, fr); + goto out; } tmp = xstrndup(cp + 2, end - (cp + 2)); if (style_parse(&sy, base, tmp) != 0) { @@ -755,6 +757,7 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base, format_free_range(&frs, fr); } +out: /* Free the screens. */ for (i = 0; i < TOTAL; i++) screen_free(&s[i]); |