diff options
-rw-r--r-- | meta/recipes-graphics/xorg-lib/libpciaccess-0.12.902/fix_deletion_of_last_handle.patch | 51 | ||||
-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 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | The below patch is from | ||
4 | http://cgit.freedesktop.org/xorg/lib/libpciaccess/commit/?id=a798395a1bfd9d06d40e2d8d14377a156c94429a | ||
5 | It would appear in the next .tar.bz2 release. | ||
6 | |||
7 | ------------------------------ | ||
8 | |||
9 | commit a798395a1bfd9d06d40e2d8d14377a156c94429a | ||
10 | Author: Daniel Drake <dsd@laptop.org> | ||
11 | Date: 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 | |||
29 | diff --git a/src/common_io.c b/src/common_io.c | ||
30 | index 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 | ||
6 | require xorg-lib-common.inc | 6 | require xorg-lib-common.inc |
7 | 7 | ||
8 | SRC_URI += "file://fix_deletion_of_last_handle.patch" | ||
9 | |||
10 | LICENSE = "MIT & MIT-style" | 8 | LICENSE = "MIT & MIT-style" |
11 | LIC_FILES_CHKSUM = "file://COPYING;md5=de01cb89a769dc657d4c321c209ce4fc" | 9 | LIC_FILES_CHKSUM = "file://COPYING;md5=de01cb89a769dc657d4c321c209ce4fc" |
12 | 10 | ||
@@ -14,5 +12,5 @@ PR = "r0" | |||
14 | 12 | ||
15 | DEPENDS += "xproto virtual/libx11" | 13 | DEPENDS += "xproto virtual/libx11" |
16 | 14 | ||
17 | SRC_URI[md5sum] = "f1db198398a8a1143822acc230843e8c" | 15 | SRC_URI[md5sum] = "399a419ac6a54f0fc07c69c9bdf452dc" |
18 | SRC_URI[sha256sum] = "0861d5bf68b598baa307e5c9b06dfd38ae03096b46e36b236106517bcd14b63a" | 16 | SRC_URI[sha256sum] = "27ab68f645691a4ca258dcc9d131040586e134f9233ce079794496f6264da084" |