- intel: Use the correct size when allocating reloc_target_info
array. Thomas tracked down this error with kdm and commit b509640 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/libdrm?expand=0&rev=49
This commit is contained in:
parent
0d83b5e6d9
commit
6187084ba0
54
commit-3506173.diff
Normal file
54
commit-3506173.diff
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
commit 3506173ba7e726a9d0a17ec42734a925a885b01e
|
||||||
|
Author: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Date: Sun Apr 11 18:40:38 2010 +0100
|
||||||
|
|
||||||
|
intel: Use the correct size when allocating reloc_target_info array
|
||||||
|
|
||||||
|
Thomas tracked down this error with kdm and commit b509640:
|
||||||
|
|
||||||
|
==4320== Invalid write of size 8
|
||||||
|
==4320== at 0x9A97998: do_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0)
|
||||||
|
==4320== by 0x9A97B9C: drm_intel_gem_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0)
|
||||||
|
==4320== by 0xAED3234: intel_batchbuffer_emit_reloc (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF13827: brw_emit_vertices (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF1F14D: brw_upload_state (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF12122: brw_draw_prims (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xB256824: vbo_exec_vtx_flush (in /usr/lib/xorg/modules/dri/libdricore.so)
|
||||||
|
==4320== by 0xB2523BB: vbo_exec_FlushVertices_internal (in /usr/lib/xorg/modules/dri/libdricore.so)
|
||||||
|
==4320== by 0xB252411: vbo_exec_FlushVertices (in /usr/lib/xorg/modules/dri/libdricore.so)
|
||||||
|
==4320== by 0xB195A3D: _mesa_PopAttrib (in /usr/lib/xorg/modules/dri/libdricore.so)
|
||||||
|
==4320== by 0x8DF0F02: __glXDisp_Render (in /usr/lib/xorg/modules/extensions/libglx.xorg)
|
||||||
|
==4320== by 0x8DF517F: __glXDispatch (in /usr/lib/xorg/modules/extensions/libglx.xorg)
|
||||||
|
==4320== Address 0x126a8b80 is 0 bytes after a block of size 16,368 alloc'd
|
||||||
|
==4320== at 0x4C23E03: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
|
||||||
|
==4320== by 0x9A97A64: do_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0)
|
||||||
|
==4320== by 0x9A97B9C: drm_intel_gem_bo_emit_reloc (in /usr/lib/libdrm_intel.so.1.0.0)
|
||||||
|
==4320== by 0xAED3234: intel_batchbuffer_emit_reloc (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF191DB: upload_binding_table_pointers (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF1F14D: brw_upload_state (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xAF12122: brw_draw_prims (in /usr/lib/xorg/modules/dri/i965_dri.so)
|
||||||
|
==4320== by 0xB255EF6: vbo_exec_DrawArrays (in /usr/lib/xorg/modules/dri/libdricore.so)
|
||||||
|
==4320== by 0x8DF67A3: __glXDisp_DrawArrays (in /usr/lib/xorg/modules/extensions/libglx.xorg)
|
||||||
|
==4320== by 0x8DF0F02: __glXDisp_Render (in /usr/lib/xorg/modules/extensions/libglx.xorg)
|
||||||
|
==4320== by 0x8DF517F: __glXDispatch (in /usr/lib/xorg/modules/extensions/libglx.xorg)
|
||||||
|
==4320== by 0x446293: ??? (in /usr/bin/Xorg)
|
||||||
|
|
||||||
|
which is simply due to only allocating space for the pointers and not
|
||||||
|
the structs themselves. D'oh.
|
||||||
|
|
||||||
|
Reported-by: Thomas Bächler <thomas@archlinux.org>
|
||||||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
|
||||||
|
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
|
||||||
|
index 8e46e37..a2cf6e6 100644
|
||||||
|
--- a/intel/intel_bufmgr_gem.c
|
||||||
|
+++ b/intel/intel_bufmgr_gem.c
|
||||||
|
@@ -470,7 +470,7 @@ drm_intel_setup_reloc_list(drm_intel_bo *bo)
|
||||||
|
bo_gem->relocs = malloc(max_relocs *
|
||||||
|
sizeof(struct drm_i915_gem_relocation_entry));
|
||||||
|
bo_gem->reloc_target_info = malloc(max_relocs *
|
||||||
|
- sizeof(drm_intel_reloc_target *));
|
||||||
|
+ sizeof(drm_intel_reloc_target));
|
||||||
|
if (bo_gem->relocs == NULL || bo_gem->reloc_target_info == NULL) {
|
||||||
|
bo_gem->has_error = 1;
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 31 22:08:35 CEST 2010 - sndirsch@suse.de
|
||||||
|
|
||||||
|
- intel: Use the correct size when allocating reloc_target_info
|
||||||
|
array. Thomas tracked down this error with kdm and commit b509640
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 9 09:40:21 CEST 2010 - sndirsch@suse.de
|
Fri Apr 9 09:40:21 CEST 2010 - sndirsch@suse.de
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ Summary: Userspace Interface for Kernel DRM Services
|
|||||||
Source: %{name}-%{version}.tar.bz2
|
Source: %{name}-%{version}.tar.bz2
|
||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Patch: enable_test_tools.diff
|
Patch: enable_test_tools.diff
|
||||||
|
Patch1: commit-3506173.diff
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -62,6 +63,7 @@ services.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch
|
%patch
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user