From: Dan Carpenter Date: Tue, 3 Nov 2020 10:16:23 +0000 (+0300) Subject: iommu: Fix a check in iommu_check_bind_data() X-Git-Tag: v5.10-rc3~25^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4dd6ce478003525df8618750d30f0b90380047a7;p=thirdparty%2Fkernel%2Flinux.git iommu: Fix a check in iommu_check_bind_data() The "data->flags" variable is a u64 so if one of the high 32 bits is set the original code will allow it, but it should be rejected. The fix is to declare "mask" as a u64 instead of a u32. Fixes: d90573812eea ("iommu/uapi: Handle data and argsz filled by users") Signed-off-by: Dan Carpenter Link: https://lore.kernel.org/r/20201103101623.GA1127762@mwanda Signed-off-by: Joerg Roedel --- diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 8c470f451a323..b53446bb8c6b4 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -2071,7 +2071,7 @@ EXPORT_SYMBOL_GPL(iommu_uapi_cache_invalidate); static int iommu_check_bind_data(struct iommu_gpasid_bind_data *data) { - u32 mask; + u64 mask; int i; if (data->version != IOMMU_GPASID_BIND_VERSION_1)