diff options
author | nicm <nicm> | 2018-02-20 10:43:46 +0000 |
---|---|---|
committer | nicm <nicm> | 2018-02-20 10:43:46 +0000 |
commit | ab6f0bb3485f6626bad6f585e4d17059fe4f7152 (patch) | |
tree | 743dc8c3e57bad48ba91f14453da28a9cd273117 | |
parent | 6ae04dd5a01cbdc2fe2e4908ef444faaf50656f4 (diff) | |
download | rtmux-ab6f0bb3485f6626bad6f585e4d17059fe4f7152.tar.gz rtmux-ab6f0bb3485f6626bad6f585e4d17059fe4f7152.tar.bz2 rtmux-ab6f0bb3485f6626bad6f585e4d17059fe4f7152.zip |
Do not leak memory when working out job name in formats.
-rw-r--r-- | format.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -1121,7 +1121,7 @@ format_expand_time(struct format_tree *ft, const char *fmt, time_t t) char * format_expand(struct format_tree *ft, const char *fmt) { - char *buf, *out; + char *buf, *out, *name; const char *ptr, *s, *saved = fmt; size_t off, len, n, outlen; int ch, brackets; @@ -1160,8 +1160,11 @@ format_expand(struct format_tree *ft, const char *fmt) if (ft->flags & FORMAT_NOJOBS) out = xstrdup(""); - else - out = format_job_get(ft, xstrndup(fmt, n)); + else { + name = xstrndup(fmt, n); + out = format_job_get(ft, name); + free(name); + } outlen = strlen(out); while (len - off < outlen + 1) { |