Terminate strftime buffer properly and free format string, whoops. From

Tiago Cunha.
pull/1/head
Nicholas Marriott 2012-03-03 09:45:41 +00:00
parent f4fdddc930
commit 8b68ea1462
1 changed files with 5 additions and 2 deletions

View File

@ -51,6 +51,7 @@ cmd_display_message_exec(struct cmd *self, struct cmd_ctx *ctx)
struct format_tree *ft; struct format_tree *ft;
char out[BUFSIZ]; char out[BUFSIZ];
time_t t; time_t t;
size_t len;
if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL) if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL)
return (-1); return (-1);
@ -83,14 +84,16 @@ cmd_display_message_exec(struct cmd *self, struct cmd_ctx *ctx)
format_window_pane(ft, wp); format_window_pane(ft, wp);
t = time(NULL); t = time(NULL);
strftime(out, sizeof out, template, localtime(&t)); len = strftime(out, sizeof out, template, localtime(&t));
out[len] = '\0';
msg = format_expand(ft, out); msg = format_expand(ft, out);
if (args_has(self->args, 'p')) if (args_has(self->args, 'p'))
ctx->print(ctx, "%s", msg); ctx->print(ctx, "%s", msg);
else else
status_message_set(c, "%s", msg); status_message_set(c, "%s", msg);
xfree(msg);
xfree(msg);
format_free(ft);
return (0); return (0);
} }