diff --git a/CHANGELOG.md b/CHANGELOG.md index a02a7ba..c36baa8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,8 @@ (https://codeberg.org/dnkl/yambar/issues/32). * Crash in the `ramp` particle when the tag’s value was out-of-bounds (https://codeberg.org/dnkl/yambar/issues/45). +* Crash when a string particle contained `{}` + (https://codeberg.org/dnkl/yambar/issues/48). ### Security diff --git a/tag.c b/tag.c index 02e0794..5b00218 100644 --- a/tag.c +++ b/tag.c @@ -446,8 +446,9 @@ tags_expand_template(const char *template, const struct tag_set *tags) } /* Lookup tag */ - const struct tag *tag = tag_for_name(tags, tag_name); - if (tag == NULL) { + const struct tag *tag = NULL; + + if (tag_name == NULL || (tag = tag_for_name(tags, tag_name)) == NULL) { /* No such tag, copy as-is instead */ sbuf_append_at_most(&formatted, template, begin - template + 1); template = begin + 1;