aboutsummaryrefslogtreecommitdiff
path: root/options.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2016-09-26 12:01:12 +0100
committerThomas Adam <thomas@xteddy.org>2016-09-26 12:01:12 +0100
commit30f2e8ff29b112b6b428d1d123187fdfd497e814 (patch)
treea080fb07fdd7ed7ba11f6412eef712f4db447720 /options.c
parentcbde98f67b5f96abcd95b8560081a7664980a3cf (diff)
parent69e980602b31732348aaceee045a1901dc982d78 (diff)
downloadrtmux-30f2e8ff29b112b6b428d1d123187fdfd497e814.tar.gz
rtmux-30f2e8ff29b112b6b428d1d123187fdfd497e814.tar.bz2
rtmux-30f2e8ff29b112b6b428d1d123187fdfd497e814.zip
Merge branch 'obsd-master'
Diffstat (limited to 'options.c')
-rw-r--r--options.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/options.c b/options.c
index df79ac4b..cd3bd8ec 100644
--- a/options.c
+++ b/options.c
@@ -128,19 +128,23 @@ options_set_string(struct options *oo, const char *name, const char *fmt, ...)
{
struct options_entry *o;
va_list ap;
+ char *s;
+ s = NULL;
if ((o = options_find1(oo, name)) == NULL) {
o = xmalloc(sizeof *o);
o->name = xstrdup(name);
RB_INSERT(options_tree, &oo->tree, o);
memcpy(&o->style, &grid_default_cell, sizeof o->style);
} else if (o->type == OPTIONS_STRING)
- free(o->str);
+ s = o->str;
va_start(ap, fmt);
o->type = OPTIONS_STRING;
xvasprintf(&o->str, fmt, ap);
va_end(ap);
+
+ free(s);
return (o);
}