summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-graphics/xorg-lib/libpciaccess-0.12.902/fix_deletion_of_last_handle.patch51
-rw-r--r--meta/recipes-graphics/xorg-lib/libpciaccess_0.13.1.bb (renamed from meta/recipes-graphics/xorg-lib/libpciaccess_0.12.902.bb)6
2 files changed, 2 insertions, 55 deletions
diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess-0.12.902/fix_deletion_of_last_handle.patch b/meta/recipes-graphics/xorg-lib/libpciaccess-0.12.902/fix_deletion_of_last_handle.patch
deleted file mode 100644
index 1933f45496..0000000000
--- a/meta/recipes-graphics/xorg-lib/libpciaccess-0.12.902/fix_deletion_of_last_handle.patch
+++ /dev/null
@@ -1,51 +0,0 @@
1Upstream-Status: Backport
2
3The below patch is from
4http://cgit.freedesktop.org/xorg/lib/libpciaccess/commit/?id=a798395a1bfd9d06d40e2d8d14377a156c94429a
5It would appear in the next .tar.bz2 release.
6
7------------------------------
8
9commit a798395a1bfd9d06d40e2d8d14377a156c94429a
10Author: Daniel Drake <dsd@laptop.org>
11Date: Fri Nov 25 12:28:48 2011 -0600
12
13 delete_io_handle: fix deletion of last handle
14
15 When num_ios goes from 1 to 0, a realloc(ios, 0); call is made.
16 This is equivalent to free(ios) and NULL is returned.
17
18 However, the previous logic in the code incorrectly discards this NULL
19 return value. When we next call new_io_handle(), realloc(ios, X) is
20 called with "ios" pointing to freed memory. This causes glibc to abort.
21
22 Correct this logic to detect the 1-to-0 case and handle it correctly.
23 Other cases are unchanged; there is still value in checking the
24 return value from realloc() as it also returns NULL on error.
25
26 Signed-off-by: Daniel Drake <dsd@laptop.org>
27 Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
28
29diff --git a/src/common_io.c b/src/common_io.c
30index f1319f8..5b35e07 100644
31--- a/src/common_io.c
32+++ b/src/common_io.c
33@@ -64,10 +64,15 @@ delete_io_handle(struct pci_io_handle *handle)
34 }
35 }
36
37- new = realloc(ios, sizeof(struct pci_io_handle) * (num_ios - 1));
38- if (new)
39- ios = new;
40 num_ios--;
41+ if (num_ios) {
42+ new = realloc(ios, sizeof(struct pci_io_handle) * num_ios);
43+ if (new)
44+ ios = new;
45+ } else {
46+ free(ios);
47+ ios = NULL;
48+ }
49 }
50
51 _pci_hidden void
diff --git a/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.902.bb b/meta/recipes-graphics/xorg-lib/libpciaccess_0.13.1.bb
index 37d291f353..178e220de9 100644
--- a/meta/recipes-graphics/xorg-lib/libpciaccess_0.12.902.bb
+++ b/meta/recipes-graphics/xorg-lib/libpciaccess_0.13.1.bb
@@ -5,8 +5,6 @@ PCI bus and devices in a platform-independent way."
5 5
6require xorg-lib-common.inc 6require xorg-lib-common.inc
7 7
8SRC_URI += "file://fix_deletion_of_last_handle.patch"
9
10LICENSE = "MIT & MIT-style" 8LICENSE = "MIT & MIT-style"
11LIC_FILES_CHKSUM = "file://COPYING;md5=de01cb89a769dc657d4c321c209ce4fc" 9LIC_FILES_CHKSUM = "file://COPYING;md5=de01cb89a769dc657d4c321c209ce4fc"
12 10
@@ -14,5 +12,5 @@ PR = "r0"
14 12
15DEPENDS += "xproto virtual/libx11" 13DEPENDS += "xproto virtual/libx11"
16 14
17SRC_URI[md5sum] = "f1db198398a8a1143822acc230843e8c" 15SRC_URI[md5sum] = "399a419ac6a54f0fc07c69c9bdf452dc"
18SRC_URI[sha256sum] = "0861d5bf68b598baa307e5c9b06dfd38ae03096b46e36b236106517bcd14b63a" 16SRC_URI[sha256sum] = "27ab68f645691a4ca258dcc9d131040586e134f9233ce079794496f6264da084"