while(1) {
ret = openvz_readline(fd, line, sizeof(line));
- if(ret == -1)
+ if(ret == -1) {
+ close(fd);
return -1;
+ }
if(ret == 0) { /* EoF, UUID was not found */
uuidstr[0] = 0;
/* startstack -> processor */
"%*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %*d %d",
&usertime, &systime, &cpu) != 3) {
+ fclose(pidinfo);
VIR_WARN0("cannot parse process status data");
errno = -EINVAL;
return -1;
unsigned long long *allocation,
unsigned long long *capacity)
{
- int fd, i;
+ int fd, i, ret = -1;
off_t start;
unsigned char buffer[1024];
ssize_t bytes;
fd,
allocation,
capacity) < 0)
- return -1;
+ goto cleanup;
/* make sure to set the target format "unknown" to begin with */
target->format = VIR_STORAGE_POOL_DISK_UNKNOWN;
virReportSystemError(conn, errno,
_("cannot seek to beginning of file '%s'"),
target->path);
- return -1;
+ goto cleanup;
}
bytes = saferead(fd, buffer, sizeof(buffer));
if (bytes < 0) {
virReportSystemError(conn, errno,
_("cannot read beginning of file '%s'"),
target->path);
- return -1;
+ goto cleanup;
}
for (i = 0; disk_types[i].part_table_type != -1; i++) {
}
}
- return 0;
+ ret = 0;
+
+ cleanup:
+ close(fd);
+
+ return ret;
}
static int
if (xenInotifyAddDomainConfigInfo(conn, path) < 0 ) {
virXenInotifyError(NULL, VIR_ERR_INTERNAL_ERROR,
"%s", _("Error adding file to config list"));
+ closedir(dh);
return -1;
}
}