[igt-dev] [PATCH i-g-t 1/3] lib/intel_memory_region: verify item.length
Matthew Auld
matthew.auld at intel.com
Thu Jul 8 12:25:52 UTC 2021
If the regions query fails then the error will be encoded in the
item.length, while the ioctl will still return success.
Reported-by: Ville Syrjala <ville.syrjala at linux.intel.com>
Signed-off-by: Matthew Auld <matthew.auld at intel.com>
---
lib/i915/intel_memory_region.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lib/i915/intel_memory_region.c b/lib/i915/intel_memory_region.c
index 144ae12c..e1e210f2 100644
--- a/lib/i915/intel_memory_region.c
+++ b/lib/i915/intel_memory_region.c
@@ -119,6 +119,13 @@ struct drm_i915_query_memory_regions *gem_get_query_memory_regions(int fd)
memset(&item, 0, sizeof(item));
item.query_id = DRM_I915_QUERY_MEMORY_REGIONS;
i915_query_items(fd, &item, 1);
+ /*
+ * Any DRM_I915_QUERY_MEMORY_REGIONS specific errors are encoded in the
+ * item.length, even though the ioctl might still return success.
+ */
+ igt_assert_f(item.length > 0,
+ "DRM_I915_QUERY_MEMORY_REGIONS failed with %d\n",
+ item.length);
query_info = calloc(1, item.length);
--
2.26.3
More information about the igt-dev
mailing list