diff options
author | Stephan Hilb <stephan@ecshi.net> | 2019-03-13 21:32:02 +0100 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-03-13 22:04:04 -0600 |
commit | d64e8ba9469f4fa0ff693a22c88c1afa687c4c6c (patch) | |
tree | 19265f09979b0990599ac11087438d3dde706a27 /swaybar/tray/icon.c | |
parent | acdb4ed7a32a7cefd4ac37190ba65d33d752bee0 (diff) |
swaybar: fix loading of malformed icon theme
If the icon index.theme contained a key-value pair without a preceding
group header, entry_handler() would be called with a zero pointer and
lead to a segfault.
Set the error flag and break on such malformed files.
Diffstat (limited to 'swaybar/tray/icon.c')
-rw-r--r-- | swaybar/tray/icon.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/swaybar/tray/icon.c b/swaybar/tray/icon.c index 2276e36d..8587f3f7 100644 --- a/swaybar/tray/icon.c +++ b/swaybar/tray/icon.c @@ -243,6 +243,10 @@ static struct icon_theme *read_theme_file(char *basedir, char *theme_name) { free(group); group = strdup(&line[1]); } else { // key-value pair + if (!group) { + error = true; + break; + } // check well-formed int eok = 0; for (; isalnum(line[eok]) || line[eok] == '-'; ++eok) {} // TODO locale? |