aboutsummaryrefslogtreecommitdiffstats
path: root/swaybar
diff options
context:
space:
mode:
authorLibravatar emersion <contact@emersion.fr>2019-03-11 17:00:06 +0100
committerLibravatar Brian Ashworth <bosrsf04@gmail.com>2019-03-11 12:12:46 -0400
commitbcde298a719f60b9913133dbd2a169dedbc8dd7d (patch)
tree391fd7e832652c5eaae6df67737a41ecc405b3d0 /swaybar
parentFix click behaviour (diff)
downloadsway-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
Diffstat (limited to 'swaybar')
-rw-r--r--swaybar/tray/icon.c6
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 }