From 2f16822b9487a951ac898fd6703a7f8c7cd4ce06 Mon Sep 17 00:00:00 2001 From: Guillem Jover Date: Sat, 15 Nov 2014 11:59:37 +0100 Subject: [PATCH] Do not assume fixed line lengths for /proc/acpi/wakeup file The lines in that file might be equal or longer than 40 characters, which means that the getline() call will truncate them, possibly at the wrong place, and then be unable to proceed, as subsequent calls will get stuck waiting for input that is not coming. --- src/acpitool.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/acpitool.cpp b/src/acpitool.cpp index f3beeca..e85a7c1 100644 --- a/src/acpitool.cpp +++ b/src/acpitool.cpp @@ -416,7 +416,8 @@ int Do_Fan_Info(int verbose) int Show_WakeUp_Devices(int verbose) { ifstream file_in; - char *filename, str[40]; + char *filename; + string str; filename = "/proc/acpi/wakeup"; @@ -437,14 +438,14 @@ int Show_WakeUp_Devices(int verbose) } else { - file_in.getline(str, 40); // first line are just headers // + getline(file_in, str); // first line are just headers // cout<<" "<