[libvirt] [PATCH] conf: Report sensible error for invalid disk name
Peter Krempa
pkrempa at redhat.com
Tue Nov 20 14:27:47 UTC 2012
On 11/20/12 14:55, Martin Kletzander wrote:
> The error "... but the cause is unknown" appeared for XMLs similar to
> this:
>
> <disk type='file' device='cdrom'>
> <driver name='qemu' type='raw'/>
> <source file='/dev/zero'/>
> <target dev='sr0'/>
> </disk>
>
> Notice unsupported disk type (for the driver), but also no address
> specified. The first part is not a problem and we should not abort
> immediately because of that, but the combination with the address
> unknown was causing an unspecified error.
> ---
> src/util/util.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/util/util.c b/src/util/util.c
> index 75b18c1..d5b2c97 100644
> --- a/src/util/util.c
> +++ b/src/util/util.c
> @@ -2189,8 +2189,12 @@ int virDiskNameToIndex(const char *name) {
> }
> }
>
> - if (!ptr)
> + if (!ptr) {
> + virReportError(VIR_ERR_XML_ERROR,
> + _("Unknown disk name '%s' and no address specified"),
> + name);
> return -1;
> + }
Some of the call paths of this function the callers do their own error
reporting (see src/qemu/qemu_command.c) based on the return value. This
should be consolidated.
In case of this function I'd probably rather go for adding the error
message on the appropriate places as the inability to parse the disk ID
is ignored on some calls (maybe that should be fixed in the first place
and than the error reporting is okay here.)
>
> for (i = 0; *ptr; i++) {
> idx = (idx + (i < 1 ? 0 : 1)) * 26;
>
Peter
More information about the libvir-list
mailing list