From a4d346627cc661f32bc7fb65a43ff19d48b50a96 Mon Sep 17 00:00:00 2001 From: Ian Fan Date: Sat, 22 Sep 2018 10:57:22 +0100 Subject: 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 --- swaybar/status_line.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'swaybar') 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."); -- cgit v1.2.3-70-g09d2