From c239a8bf0767a31ca87d3d3cecc3006789992753 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Fri, 20 Nov 2015 14:05:22 +1300 Subject: Fixed hanging fd on battery status read failure --- bat_tray.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bat_tray.c b/bat_tray.c index f7c4a4c..254cf97 100644 --- a/bat_tray.c +++ b/bat_tray.c @@ -235,10 +235,15 @@ int get_battery_state() char state[1024]; FILE* fd = NULL; - if (!(fd = fopen(CHARGE_STATE_PATH, "r")) || - !fgets(state, sizeof(state), fd)) + if (!(fd = fopen(CHARGE_STATE_PATH, "r"))) return STATE_UNKNOWN; + if (!fgets(state, sizeof(state), fd)) + { + fclose(fd); + return STATE_UNKNOWN; + } + fclose(fd); chomp(state); -- cgit v1.1