提交 166c03f3 编写于 作者: M Matthias Bolte 提交者: Daniel Veillard

Some close/fclose/closedir calls are missing

* src/openvz_conf.c src/qemu_driver.c src/storage_backend_scsi.c
  src/xen_inotify.c: closes various file descriptors leaks
上级 d5df6769
......@@ -822,8 +822,10 @@ openvzGetVPSUUID(int vpsid, char *uuidstr, size_t len)
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;
......
......@@ -2837,6 +2837,7 @@ static int qemudGetProcessInfo(unsigned long long *cpuTime, int *lastCpu, int pi
/* 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;
......
......@@ -137,7 +137,7 @@ virStorageBackendSCSIUpdateVolTargetInfo(virConnectPtr conn,
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;
......@@ -154,7 +154,7 @@ virStorageBackendSCSIUpdateVolTargetInfo(virConnectPtr conn,
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;
......@@ -164,14 +164,14 @@ virStorageBackendSCSIUpdateVolTargetInfo(virConnectPtr conn,
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++) {
......@@ -184,7 +184,12 @@ virStorageBackendSCSIUpdateVolTargetInfo(virConnectPtr conn,
}
}
return 0;
ret = 0;
cleanup:
close(fd);
return ret;
}
static int
......
......@@ -424,6 +424,7 @@ xenInotifyOpen(virConnectPtr conn ATTRIBUTE_UNUSED,
if (xenInotifyAddDomainConfigInfo(conn, path) < 0 ) {
virXenInotifyError(NULL, VIR_ERR_INTERNAL_ERROR,
"%s", _("Error adding file to config list"));
closedir(dh);
return -1;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册