diff --git a/src/util/virfile.c b/src/util/virfile.c index 8f0eec3d64af0d8ba14b119bd2f6a0138184366a..2b07ac9255920791c5b902d964d1bc9de3b99c1c 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -546,7 +546,11 @@ static int virFileLoopDeviceOpen(char **dev_name) errno = 0; while ((de = readdir(dh)) != NULL) { - if (!STRPREFIX(de->d_name, "loop")) + /* Checking 'loop' prefix is insufficient, since + * new kernels have a dev named 'loop-control' + */ + if (!STRPREFIX(de->d_name, "loop") || + !c_isdigit(de->d_name[4])) continue; if (virAsprintf(&looppath, "/dev/%s", de->d_name) < 0)