=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/format.c,v retrieving revision 1.68 retrieving revision 1.69 diff -c -r1.68 -r1.69 *** src/usr.bin/tmux/format.c 2015/05/27 13:28:04 1.68 --- src/usr.bin/tmux/format.c 2015/05/29 23:12:38 1.69 *************** *** 1,4 **** ! /* $OpenBSD: format.c,v 1.68 2015/05/27 13:28:04 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: format.c,v 1.69 2015/05/29 23:12:38 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott *************** *** 490,496 **** char * format_expand(struct format_tree *ft, const char *fmt) { ! char *buf, *tmp; const char *ptr, *s; size_t off, len, n, slen; int ch, brackets; --- 490,496 ---- char * format_expand(struct format_tree *ft, const char *fmt) { ! char *buf, *tmp, *cmd; const char *ptr, *s; size_t off, len, n, slen; int ch, brackets; *************** *** 530,538 **** tmp = xmalloc(n + 1); memcpy(tmp, fmt, n); tmp[n] = '\0'; ! s = format_job_get(ft, tmp); slen = strlen(s); while (len - off < slen + 1) { buf = xreallocarray(buf, 2, len); --- 530,542 ---- tmp = xmalloc(n + 1); memcpy(tmp, fmt, n); tmp[n] = '\0'; + cmd = format_expand(ft, tmp); ! s = format_job_get(ft, cmd); slen = strlen(s); + + free(cmd); + free(tmp); while (len - off < slen + 1) { buf = xreallocarray(buf, 2, len);