aboutsummaryrefslogtreecommitdiff
path: root/swaybar
diff options
context:
space:
mode:
authorIan Fan <ianfan0@gmail.com>2018-09-22 10:57:22 +0100
committerIan Fan <ianfan0@gmail.com>2018-09-22 11:02:47 +0100
commita4d346627cc661f32bc7fb65a43ff19d48b50a96 (patch)
tree9fe3ee50c17a53266183e1e4643bb149c6af6c86 /swaybar
parentb148da848ae9075822cd8ddd743532f3ce78f923 (diff)
swaybar: explicitly check return value of getdelim
This prevents an signed-to-unsigned conversion error on buffer_index if getdelim fails and returns -1, which caused swaybar to try to search the header for the array and immediately failing
Diffstat (limited to 'swaybar')
-rw-r--r--swaybar/status_line.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/swaybar/status_line.c b/swaybar/status_line.c
index 401bf6f6..48b43248 100644
--- a/swaybar/status_line.c
+++ b/swaybar/status_line.c
@@ -67,9 +67,13 @@ bool status_handle_readable(struct status_line *status) {
wl_list_init(&status->blocks);
status->tokener = json_tokener_new();
- status->buffer_index = getdelim(&status->buffer,
- &status->buffer_size, EOF, status->read);
- return i3bar_handle_readable(status);
+ read_bytes = getdelim(&status->buffer, &status->buffer_size, EOF, status->read);
+ if (read_bytes > 0) {
+ status->buffer_index = read_bytes;
+ return i3bar_handle_readable(status);
+ } else {
+ return false;
+ }
}
wlr_log(WLR_DEBUG, "Using text protocol.");