summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2013-03-21 16:24:03 +0000
committernicm <nicm@openbsd.org>2013-03-21 16:24:03 +0000
commitba28090c73693bface7ebe0c40e32b9f188cba5c (patch)
tree8257f4c23e991a5abe4970c135f1caab18c41605
parentClarify choose-tree entry in man page. (diff)
downloadwireguard-openbsd-ba28090c73693bface7ebe0c40e32b9f188cba5c.tar.xz
wireguard-openbsd-ba28090c73693bface7ebe0c40e32b9f188cba5c.zip
Do not leak formats in status_replace.
-rw-r--r--usr.bin/tmux/status.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/usr.bin/tmux/status.c b/usr.bin/tmux/status.c
index fde309b2293..85cb63c531a 100644
--- a/usr.bin/tmux/status.c
+++ b/usr.bin/tmux/status.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: status.c,v 1.97 2013/03/21 16:14:09 nicm Exp $ */
+/* $OpenBSD: status.c,v 1.98 2013/03/21 16:24:03 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -503,7 +503,7 @@ status_replace(struct client *c, struct session *s, struct winlink *wl,
struct window_pane *wp, const char *fmt, time_t t, int jobsflag)
{
static char out[BUFSIZ];
- char in[BUFSIZ], ch, *iptr, *optr;
+ char in[BUFSIZ], ch, *iptr, *optr, *expanded;
size_t len;
struct format_tree *ft;
@@ -542,7 +542,9 @@ status_replace(struct client *c, struct session *s, struct winlink *wl,
format_session(ft, s);
format_winlink(ft, s, wl);
format_window_pane(ft, wp);
- return (format_expand(ft, out));
+ expanded = format_expand(ft, out);
+ format_free(ft);
+ return (expanded);
}
/* Figure out job name and get its result, starting it off if necessary. */