diff options
author | emersion <contact@emersion.fr> | 2019-03-11 17:00:06 +0100 |
---|---|---|
committer | Brian Ashworth <bosrsf04@gmail.com> | 2019-03-11 12:12:46 -0400 |
commit | bcde298a719f60b9913133dbd2a169dedbc8dd7d (patch) | |
tree | 391fd7e832652c5eaae6df67737a41ecc405b3d0 | |
parent | Fix click behaviour (diff) | |
download | sway-bcde298a719f60b9913133dbd2a169dedbc8dd7d.tar.gz sway-bcde298a719f60b9913133dbd2a169dedbc8dd7d.tar.zst sway-bcde298a719f60b9913133dbd2a169dedbc8dd7d.zip |
Fix size_t temporary underflow in log_loaded_themes
`len` will underflow but will overflow right after, so it's not as bad as it
may appear. Still better not to under/overflow at all.
Fixes https://github.com/swaywm/sway/issues/3862
-rw-r--r-- | swaybar/tray/icon.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/swaybar/tray/icon.c b/swaybar/tray/icon.c index c7ce20b4..2276e36d 100644 --- a/swaybar/tray/icon.c +++ b/swaybar/tray/icon.c | |||
@@ -307,16 +307,16 @@ static void log_loaded_themes(list_t *themes) { | |||
307 | return; | 307 | return; |
308 | } | 308 | } |
309 | 309 | ||
310 | const char *sep = ", "; | 310 | const char sep[] = ", "; |
311 | size_t sep_len = strlen(sep); | 311 | size_t sep_len = strlen(sep); |
312 | 312 | ||
313 | size_t len = 1 - sep_len; | 313 | size_t len = 0; |
314 | for (int i = 0; i < themes->length; ++i) { | 314 | for (int i = 0; i < themes->length; ++i) { |
315 | struct icon_theme *theme = themes->items[i]; | 315 | struct icon_theme *theme = themes->items[i]; |
316 | len += strlen(theme->name) + sep_len; | 316 | len += strlen(theme->name) + sep_len; |
317 | } | 317 | } |
318 | 318 | ||
319 | char *str = malloc(len); | 319 | char *str = malloc(len + 1); |
320 | if (!str) { | 320 | if (!str) { |
321 | return; | 321 | return; |
322 | } | 322 | } |