[libvirt] [PATCH] admin: Throw a system error when 'open' fails on user-provided output
Jiri Denemark
jdenemar at redhat.com
Fri Mar 31 08:35:05 UTC 2017
On Fri, Mar 31, 2017 at 10:29:25 +0200, Erik Skultety wrote:
> There was an unhandled 'open' call which resulted in:
>
> "error: Library function returned error but did not set virError"
>
> Even if this happens during the daemon's start when we still don't have
> any set of outputs defined yet, we can safely report an error, since we
> automatically fallback to stderr which is fine even for both
> running as a daemonized process, since this happens before the daemon
> forks into the background, and running as a systemd service, since
> systemd re-directs std outputs to journald by default.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1436060
>
> Signed-off-by: Erik Skultety <eskultet at redhat.com>
> ---
> src/util/virlog.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/util/virlog.c b/src/util/virlog.c
> index 7b584f8e37..7933e1a7a0 100644
> --- a/src/util/virlog.c
> +++ b/src/util/virlog.c
> @@ -750,8 +750,10 @@ virLogNewOutputToFile(virLogPriority priority,
> virLogOutputPtr ret = NULL;
>
> fd = open(file, O_CREAT | O_APPEND | O_WRONLY, S_IRUSR | S_IWUSR);
> - if (fd < 0)
> + if (fd < 0) {
> + virReportSystemError(errno, _("failed to open %s"), file);
> return NULL;
> + }
>
> if (!(ret = virLogOutputNew(virLogOutputToFd, virLogCloseFd,
> (void *)(intptr_t)fd,
ACK and safe for freeze.
Jirka
More information about the libvir-list
mailing list