mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-26 14:03:49 +03:00
network: fix return value of hostsFileWrite
The lone caller to hostsFileWrite (and the callers for at least 3 levels up the return stack) assume that the return value will be < 0 on failure. However, hostsFileWrite returns 0 on success, and a positive errno on failure. This patch changes hostsFileWrite to return -errno on failure.
This commit is contained in:
parent
a372c405b4
commit
f7bd72fa26
@ -159,19 +159,19 @@ hostsfileWrite(const char *path,
|
||||
return rc;
|
||||
|
||||
if (virAsprintf(&tmp, "%s.new", path) < 0)
|
||||
return ENOMEM;
|
||||
return -ENOMEM;
|
||||
|
||||
if (!(f = fopen(tmp, "w"))) {
|
||||
istmp = false;
|
||||
if (!(f = fopen(path, "w"))) {
|
||||
rc = errno;
|
||||
rc = -errno;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < nhosts; i++) {
|
||||
if (fputs(hosts[i].host, f) == EOF || fputc('\n', f) == EOF) {
|
||||
rc = errno;
|
||||
rc = -errno;
|
||||
VIR_FORCE_FCLOSE(f);
|
||||
|
||||
if (istmp)
|
||||
@ -182,19 +182,19 @@ hostsfileWrite(const char *path,
|
||||
}
|
||||
|
||||
if (VIR_FCLOSE(f) == EOF) {
|
||||
rc = errno;
|
||||
rc = -errno;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (istmp) {
|
||||
if (rename(tmp, path) < 0) {
|
||||
rc = errno;
|
||||
rc = -errno;
|
||||
unlink(tmp);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (unlink(tmp) < 0) {
|
||||
rc = errno;
|
||||
rc = -errno;
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user