mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 23:07:44 +00:00
openvz: Restore original EOF handling in openvzGetProcessInfo
This function is also affected by getline conversion. But this didn't result in a regression in general, because the difference would only affect the behavior of the function when the line in /proc/vz/vestat for the given vpsid wasn't found. Under normal conditions this should not happen.
This commit is contained in:
parent
4b15aad0d6
commit
cf7d897f93
@ -1507,6 +1507,7 @@ static int openvzGetProcessInfo(unsigned long long *cpuTime, int vpsid)
|
||||
unsigned long long usertime, systime, nicetime;
|
||||
int readvps = vpsid + 1; /* ensure readvps is initially different */
|
||||
ssize_t ret;
|
||||
int err = 0;
|
||||
|
||||
/* read statistic from /proc/vz/vestat.
|
||||
sample:
|
||||
@ -1522,8 +1523,10 @@ Version: 2.2
|
||||
/*search line with VEID=vpsid*/
|
||||
while (1) {
|
||||
ret = getline(&line, &line_size, fp);
|
||||
if (ret <= 0)
|
||||
if (ret < 0) {
|
||||
err = !feof(fp);
|
||||
break;
|
||||
}
|
||||
|
||||
if (sscanf (line, "%d %llu %llu %llu",
|
||||
&readvps, &usertime, &nicetime, &systime) == 4
|
||||
@ -1538,7 +1541,7 @@ Version: 2.2
|
||||
|
||||
VIR_FREE(line);
|
||||
VIR_FORCE_FCLOSE(fp);
|
||||
if (ret < 0)
|
||||
if (err)
|
||||
return -1;
|
||||
|
||||
if (readvps != vpsid) /*not found*/
|
||||
|
Loading…
Reference in New Issue
Block a user