From 31b71b67011fa52f091df6fe536a11d6d0bfb256 Mon Sep 17 00:00:00 2001 From: Daniel Lange Date: Mon, 25 Jul 2016 18:25:28 +0200 Subject: Imported Upstream version 2.0.2 --- linux/Battery.c | 17 +++++++++-------- linux/LinuxProcessList.c | 7 +++++-- 2 files changed, 14 insertions(+), 10 deletions(-) (limited to 'linux') diff --git a/linux/Battery.c b/linux/Battery.c index 572bad4..1068184 100644 --- a/linux/Battery.c +++ b/linux/Battery.c @@ -65,10 +65,11 @@ static unsigned long int parseBatInfo(const char *fileName, const unsigned short break; } - char line[50] = ""; + char* line = NULL; for (unsigned short int i = 0; i < lineNum; i++) { - char* ok = fgets(line, sizeof line, file); - if (!ok) break; + free(line); + line = String_readLine(file); + if (!line) break; } fclose(file); @@ -76,7 +77,8 @@ static unsigned long int parseBatInfo(const char *fileName, const unsigned short char *foundNumStr = String_getToken(line, wordNum); const unsigned long int foundNum = atoi(foundNumStr); free(foundNumStr); - + free(line); + total += foundNum; } @@ -116,14 +118,13 @@ static ACPresence procAcpiCheck() { continue; } - char line[100]; - char* ok = fgets(line, sizeof line, file); - if (!ok) continue; - line[sizeof(line) - 1] = '\0'; + char* line = String_readLine(file); + if (!line) continue; fclose(file); const char *isOnline = String_getToken(line, 2); + free(line); if (strcmp(isOnline, "on-line") == 0) { isOn = AC_PRESENT; diff --git a/linux/LinuxProcessList.c b/linux/LinuxProcessList.c index 1b1a0f3..712baa5 100644 --- a/linux/LinuxProcessList.c +++ b/linux/LinuxProcessList.c @@ -470,6 +470,7 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, const char* dirna int amtRead = xread(fd, command, sizeof(command) - 1); close(fd); int tokenEnd = 0; + int lastChar = 0; if (amtRead > 0) { for (int i = 0; i < amtRead; i++) if (command[i] == '\0' || command[i] == '\n') { @@ -477,14 +478,16 @@ static bool LinuxProcessList_readCmdlineFile(Process* process, const char* dirna tokenEnd = i; } command[i] = ' '; + } else { + lastChar = i; } } if (tokenEnd == 0) { tokenEnd = amtRead; } - command[amtRead] = '\0'; + command[lastChar + 1] = '\0'; process->basenameOffset = tokenEnd; - setCommand(process, command, amtRead); + setCommand(process, command, lastChar + 1); return true; } -- cgit v1.2.3