qemu-block
[Top][All Lists]
Advanced

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

Re: [PATCH v3 01/13] qga: treat get-guest-fsinfo as "best effort"


From: John Snow
Subject: Re: [PATCH v3 01/13] qga: treat get-guest-fsinfo as "best effort"
Date: Thu, 7 Jul 2022 11:23:03 -0400

On Thu, Jul 7, 2022 at 4:40 AM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Thu, Jul 7, 2022 at 8:10 AM John Snow <jsnow@redhat.com> wrote:
>>
>> In some container environments, there may be references to block devices
>> witnessable from a container through /proc/self/mountinfo that reference
>> devices we simply don't have access to in the container, and cannot
>> provide information about.
>>
>> Instead of failing the entire fsinfo command, return stub information
>> for these failed lookups.
>>
>> This allows test-qga to pass under docker tests, which are in turn used
>> by the CentOS VM tests.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>>  qga/commands-posix.c | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
>> index 0469dc409d4..950c9d72fe7 100644
>> --- a/qga/commands-posix.c
>> +++ b/qga/commands-posix.c
>> @@ -1207,7 +1207,12 @@ static void build_guest_fsinfo_for_device(char const 
>> *devpath,
>>
>>      syspath = realpath(devpath, NULL);
>>      if (!syspath) {
>> -        error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
>> +        if (errno == ENOENT) {
>> +            /* This devpath may not exist because of container config, etc. 
>> */
>> +            fs->name = g_path_get_basename(devpath);
>> +        } else {
>> +            error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
>> +        }
>
>
> It looks like this function is called recursively with the same "fs" 
> argument. That's probably why there is a if (!fs->name) check next. You may 
> want to check it too to avoid leaks and incorrect info.

Oh, I see what you mean. I am not sure if it will come up in
practice*, but I see the theoretical concern at least. I can amend it.

--js

* (Genuinely; I have no idea.)




reply via email to

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