From 82d858ce422f400da34079ccd88c42b3365dfce1 Mon Sep 17 00:00:00 2001 From: Olivia Yin Date: Fri, 4 Apr 2014 09:21:06 +0800 Subject: [PATCH] Define CPUINFO_FILE_LEN and fix maxlen of cpuinfo file for all uses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For example, the file /proc/cpuinfo for 24 cores PowerPC platform is larger than the previous maximum size 2KB. It will fail to start libvirtd with the error message as below: virFileReadAll: Failed to read file '/proc/cpuinfo': Value too large for defined data type virSysinfoRead: internal error Failed to open /proc/cpuinfo This patch defines CPUINFO_FILE_LEN as 10KB which is enough for most architectures. Signed-off-by: Olivia Yin Signed-off-by: Ján Tomko --- src/util/virsysinfo.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util/virsysinfo.c b/src/util/virsysinfo.c index 7b161573ec..40c78ca4ca 100644 --- a/src/util/virsysinfo.c +++ b/src/util/virsysinfo.c @@ -50,6 +50,7 @@ static const char *sysinfoCpuinfo = "/proc/cpuinfo"; #define SYSINFO_SMBIOS_DECODER sysinfoDmidecode #define SYSINFO sysinfoSysinfo #define CPUINFO sysinfoCpuinfo +#define CPUINFO_FILE_LEN (10*1024) /* 10KB limit for /proc/cpuinfo file */ /* only to be used test programs, therefore not in sysinfo.h */ extern void virSysinfoSetup(const char *dmidecode, const char *sysinfo, @@ -223,7 +224,7 @@ virSysinfoRead(void) if (VIR_ALLOC(ret) < 0) goto no_memory; - if (virFileReadAll(CPUINFO, 2048, &outbuf) < 0) { + if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to open %s"), CPUINFO); return NULL; @@ -341,7 +342,7 @@ virSysinfoRead(void) if (VIR_ALLOC(ret) < 0) goto no_memory; - if (virFileReadAll(CPUINFO, 2048, &outbuf) < 0) { + if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to open %s"), CPUINFO); return NULL; @@ -470,7 +471,7 @@ virSysinfoRead(void) goto no_memory; /* Gather info from /proc/cpuinfo */ - if (virFileReadAll(CPUINFO, 8192, &outbuf) < 0) { + if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Failed to open %s"), CPUINFO); return NULL; -- GitLab