Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1f13fd2 authored by Chris Wilson's avatar Chris Wilson Committed by Daniel Vetter
Browse files

drm/i915: Validate BDB section before reading



Make sure that the whole BDB section is within the MMIO region prior to
accessing it contents. That we don't read outside of the secion is left
up to the individual section parsers.

Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@gmail.com>
Reviewed-by: default avatarShobhit Kumar <shobhit.kumar@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent c6df39b5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -49,13 +49,19 @@ find_section(struct bdb_header *bdb, int section_id)
	total = bdb->bdb_size;

	/* walk the sections looking for section_id */
	while (index < total) {
	while (index + 3 < total) {
		current_id = *(base + index);
		index++;

		current_size = *((u16 *)(base + index));
		index += 2;

		if (index + current_size > total)
			return NULL;

		if (current_id == section_id)
			return base + index;

		index += current_size;
	}