mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
Define CPUINFO_FILE_LEN and fix maxlen of cpuinfo file for all uses
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 <Hong-Hua.Yin@freescale.com> Signed-off-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
34542473e5
commit
82d858ce42
@ -50,6 +50,7 @@ static const char *sysinfoCpuinfo = "/proc/cpuinfo";
|
|||||||
#define SYSINFO_SMBIOS_DECODER sysinfoDmidecode
|
#define SYSINFO_SMBIOS_DECODER sysinfoDmidecode
|
||||||
#define SYSINFO sysinfoSysinfo
|
#define SYSINFO sysinfoSysinfo
|
||||||
#define CPUINFO sysinfoCpuinfo
|
#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 */
|
/* only to be used test programs, therefore not in sysinfo.h */
|
||||||
extern void virSysinfoSetup(const char *dmidecode, const char *sysinfo,
|
extern void virSysinfoSetup(const char *dmidecode, const char *sysinfo,
|
||||||
@ -223,7 +224,7 @@ virSysinfoRead(void)
|
|||||||
if (VIR_ALLOC(ret) < 0)
|
if (VIR_ALLOC(ret) < 0)
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
if (virFileReadAll(CPUINFO, 2048, &outbuf) < 0) {
|
if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to open %s"), CPUINFO);
|
_("Failed to open %s"), CPUINFO);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -341,7 +342,7 @@ virSysinfoRead(void)
|
|||||||
if (VIR_ALLOC(ret) < 0)
|
if (VIR_ALLOC(ret) < 0)
|
||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
if (virFileReadAll(CPUINFO, 2048, &outbuf) < 0) {
|
if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to open %s"), CPUINFO);
|
_("Failed to open %s"), CPUINFO);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -470,7 +471,7 @@ virSysinfoRead(void)
|
|||||||
goto no_memory;
|
goto no_memory;
|
||||||
|
|
||||||
/* Gather info from /proc/cpuinfo */
|
/* Gather info from /proc/cpuinfo */
|
||||||
if (virFileReadAll(CPUINFO, 8192, &outbuf) < 0) {
|
if (virFileReadAll(CPUINFO, CPUINFO_FILE_LEN, &outbuf) < 0) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Failed to open %s"), CPUINFO);
|
_("Failed to open %s"), CPUINFO);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user