[libvirt] [PATCH v2 1/2] util: Check if kernel-provided info is consistent with itself

Peter Krempa pkrempa at redhat.com
Fri Feb 2 17:02:22 UTC 2018


On Fri, Feb 02, 2018 at 15:27:21 +0100, Martin Kletzander wrote:
> Just in case someone re-mounted /sys/fs/resctrl with different mount
> options (cdp), add a check here.
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1540780
> 
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>  src/util/virresctrl.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
> index ef388757a704..6860e86e649d 100644
> --- a/src/util/virresctrl.c
> +++ b/src/util/virresctrl.c
> @@ -941,6 +941,17 @@ virResctrlAllocParseProcessCache(virResctrlInfoPtr resctrl,
>      if (!mask)
>          return -1;
>  
> +    if (!resctrl ||
> +        level >= resctrl->nlevels ||
> +        !resctrl->levels[level] ||
> +        !resctrl->levels[level]->types[type]) {

The only caller of this function checks the range of type by converting
it from string with 'virResctrlTypeFromString' but the type in this
function is 'virCacheType' and you use 'virCacheTypeToString'.

Given the inconsistency and the fact that C will not validate the passed
type in this case you should also validate that 'type' has the correct
range.

ACK with that check added.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180202/cc3fcecf/attachment-0001.sig>


More information about the libvir-list mailing list