[libvirt] [PATCH v4 1/4] storage: Split out the valid path check
John Ferlan
jferlan at redhat.com
Mon Apr 20 16:54:46 UTC 2015
On 04/20/2015 12:23 PM, Eric Blake wrote:
> On 04/19/2015 06:38 PM, John Ferlan wrote:
>> For virStorageBackendStablePath, in order to make decisions in other code
>> split out the checks regarding whether the pool's target is empty, using /dev,
>> using /dev/, or doesn't start with /dev
>>
>> Signed-off-by: John Ferlan <jferlan at redhat.com>
>> ---
>> src/storage/storage_backend.c | 26 +++++++++++++-------------
>> src/storage/storage_backend.h | 1 +
>> 2 files changed, 14 insertions(+), 13 deletions(-)
>>
>> diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
>> index 0435983..b07e0d9 100644
>> --- a/src/storage/storage_backend.c
>> +++ b/src/storage/storage_backend.c
>> @@ -1674,6 +1674,17 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageSourcePtr target,
>> return 0;
>> }
>>
>> +bool
>> +virStorageBackendPoolPathIsStable(const char *path)
>> +{
>> + if (path == NULL || STREQ(path, "/dev") || STREQ(path, "/dev/"))
>> + return false;
>> +
>> + if (!STRPREFIX(path, "/dev"))
>> + return false;
>
> I think you want "/dev/" here as the prefix to be required; otherwise,
> "/device" would match the prefix. (This also means that someone using
> "//dev/..." would fail the check, but that's probably something we don't
> need to worry about).
>
Hmm... Sure I see that... I can make that adjustment. I'll wait a bit
before pushing just so see if there's other feedback...
John
>
>> - /* Short circuit if pool has no target, or if its /dev */
>> - if (pool->def->target.path == NULL ||
>> - STREQ(pool->def->target.path, "/dev") ||
>> - STREQ(pool->def->target.path, "/dev/"))
>> - goto ret_strdup;
>> -
>> - /* Skip whole thing for a pool which isn't in /dev
>> - * so we don't mess filesystem/dir based pools
>> - */
>> - if (!STRPREFIX(pool->def->target.path, "/dev"))
>> - goto ret_strdup;
>
> Of course, the bug was pre-existing in the code you are just refactoring
> from, but now that we've spotted it, we might as well fix it.
>
More information about the libvir-list
mailing list