qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH 07/15] sheepdog: Report errors in p


From: Markus Armbruster
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH 07/15] sheepdog: Report errors in pseudo-filename more usefully
Date: Fri, 03 Mar 2017 15:57:02 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Kevin Wolf <address@hidden> writes:

> Am 02.03.2017 um 22:43 hat Markus Armbruster geschrieben:
>> Errors in the pseudo-filename are all reported with the same laconic
>> "Can't parse filename" message.
>> 
>> Add real error reporting, such as:
>> 
>>     $ qemu-system-x86_64 --drive driver=sheepdog,filename=sheepdog:///
>>     qemu-system-x86_64: --drive driver=sheepdog,filename=sheepdog:///: 
>> missing file path in URI
>>     $ qemu-system-x86_64 --drive driver=sheepdog,filename=sheepgod:///vdi
>>     qemu-system-x86_64: --drive driver=sheepdog,filename=sheepgod:///vdi: 
>> URI scheme must be 'sheepdog', 'sheepdog+tcp', or 'sheepdog+unix'
>>     $ qemu-system-x86_64 --drive 
>> driver=sheepdog,filename=sheepdog+unix:///vdi?socke=sheepdog.sock
>>     qemu-system-x86_64: --drive 
>> driver=sheepdog,filename=sheepdog+unix:///vdi?socke=sheepdog.sock: 
>> unexpected query parameters
>> 
>> The code to translate legacy syntax to URI fails to escape URI
>> meta-characters.  The new error messages are misleading then.  Replace
>> them by the old "Can't parse filename" message.  "Internal error"
>> would be more honest.  Anyway, no worse than before.  Also add a FIXME
>> comment.
>> 
>> Signed-off-by: Markus Armbruster <address@hidden>
>
>> @@ -1451,12 +1480,12 @@ static int sd_open(BlockDriverState *bs, QDict 
>> *options, int flags,
>>      memset(tag, 0, sizeof(tag));
>>  
>>      if (strstr(filename, "://")) {
>> -        ret = sd_parse_uri(s, filename, vdi, &snapid, tag);
>> +        sd_parse_uri(s, filename, vdi, &snapid, tag, &local_err);
>>      } else {
>> -        ret = parse_vdiname(s, filename, vdi, &snapid, tag);
>> +        parse_vdiname(s, filename, vdi, &snapid, tag, &local_err);
>>      }
>> -    if (ret < 0) {
>> -        error_setg(errp, "Can't parse filename");
>> +    if (local_err) {
>> +        error_propagate(errp, local_err);
>>          goto out_no_fd;
>>      }
>
> I have to take my R-b back, ret isn't set here any more:
>
> block/sheepdog.c: In function 'sd_open':
> block/sheepdog.c:1451:9: error: 'ret' may be used uninitialized in this 
> function [-Werror=maybe-uninitialized]
>      int ret, fd;

Healed in PATCH 09, but of course I'll fix it anyway.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]