i3bar: fix freeing static strings

name and color fields of blocks are freed in clear_statusline, so they
need to be strdup'ed.
This commit is contained in:
shdown 2015-06-02 23:08:08 +03:00
parent 6b505d8aca
commit fe006f0f6a

View File

@ -107,14 +107,14 @@ __attribute__((format(printf, 1, 2))) static void set_statusline_error(const cha
struct status_block *err_block = scalloc(sizeof(struct status_block)); struct status_block *err_block = scalloc(sizeof(struct status_block));
err_block->full_text = i3string_from_utf8("Error: "); err_block->full_text = i3string_from_utf8("Error: ");
err_block->name = "error"; err_block->name = sstrdup("error");
err_block->color = "red"; err_block->color = sstrdup("red");
err_block->no_separator = true; err_block->no_separator = true;
struct status_block *message_block = scalloc(sizeof(struct status_block)); struct status_block *message_block = scalloc(sizeof(struct status_block));
message_block->full_text = i3string_from_utf8(message); message_block->full_text = i3string_from_utf8(message);
message_block->name = "error_message"; message_block->name = sstrdup("error_message");
message_block->color = "red"; message_block->color = sstrdup("red");
message_block->no_separator = true; message_block->no_separator = true;
TAILQ_INSERT_HEAD(&statusline_head, err_block, blocks); TAILQ_INSERT_HEAD(&statusline_head, err_block, blocks);