From 2524bb3def3009e53a78e600bbea2c4639dc1e99 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 24 Apr 2020 15:02:44 +0200 Subject: [PATCH] Fix type used for read to ssize_t. Function declaration: ssize_t read(int fd, void *buf, size_t count); With size_t the following expression is always true: while ((count = read(cpuinfo, buffer, sizeof(buffer))) > 0) and bad things happen. --- src/core/cpuinfo.cc | 2 +- src/core/osutils.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/cpuinfo.cc b/src/core/cpuinfo.cc index eceb83a..3dbdd0c 100644 --- a/src/core/cpuinfo.cc +++ b/src/core/cpuinfo.cc @@ -589,7 +589,7 @@ bool scan_cpuinfo(hwNode & n) if (core) { char buffer[1024]; - size_t count; + ssize_t count; string cpuinfo_str = ""; string description = "", version = ""; string plat = platform(); diff --git a/src/core/osutils.cc b/src/core/osutils.cc index f023a46..a53ed89 100644 --- a/src/core/osutils.cc +++ b/src/core/osutils.cc @@ -148,7 +148,7 @@ vector < string > &list) { char buffer[1024]; string buffer_str = ""; - size_t count = 0; + ssize_t count = 0; data_file fd = file_open(file); if (file_open_error(fd)) @@ -174,7 +174,7 @@ const string & def) if (fd >= 0) { char buffer[1024]; - size_t count = 0; + ssize_t count = 0; memset(buffer, 0, sizeof(buffer)); result = "";