tag: fix crash on empty tag specifier, “{}”

For strings with empty tag specifiers, “{}”, we ended up calling
tag_for_name() with a NULL pointer for name. This caused us to crash.

Closes #48
This commit is contained in:
Daniel Eklöf 2021-05-25 17:34:09 +02:00
parent cb45e53cb4
commit 5c4ae642f2
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 2 deletions

View file

@ -28,6 +28,8 @@
(https://codeberg.org/dnkl/yambar/issues/32).
* Crash in the `ramp` particle when the tags 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

5
tag.c
View file

@ -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;