diff options
| author | Ross Burton <ross.burton@intel.com> | 2015-03-09 17:40:37 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-03-10 10:47:52 +0000 |
| commit | dae9b5fb79f9e1261a631295287a9838e62ce12b (patch) | |
| tree | fe85f6608c1e2867963ec0cb26f7c78d0ef7b419 | |
| parent | 38cdb72362656eb05bf08063047b2ee2a6c20fa9 (diff) | |
| download | poky-dae9b5fb79f9e1261a631295287a9838e62ce12b.tar.gz | |
xserver-xorg: don't close already-closed connections
On shutdown xserver was closing connections that were already closed, resulting
in a segfault.
(From OE-Core rev: 04ffd02a14f5e0cd2ce0288b589d4c4a0120e2f4)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-graphics/xorg-xserver/xserver-xorg/xtrans.patch | 38 | ||||
| -rw-r--r-- | meta/recipes-graphics/xorg-xserver/xserver-xorg_1.16.3.bb | 1 |
2 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg/xtrans.patch b/meta/recipes-graphics/xorg-xserver/xserver-xorg/xtrans.patch new file mode 100644 index 0000000000..e6dba04919 --- /dev/null +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg/xtrans.patch | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | Upstream-Status: Submitted | ||
| 2 | Signed-off-by: Ross Burton <ross.burton@intel.com> | ||
| 3 | |||
| 4 | Since _XSERVTransClose frees the connection pointer passed to it, | ||
| 5 | remove that pointer from the array, so we don't try to double free it | ||
| 6 | if we come back into CloseWellKnownConnections again. | ||
| 7 | |||
| 8 | Should fix https://bugzilla.yoctoproject.org/show_bug.cgi?id=6665 in which | ||
| 9 | the shutdown section of the main() loop called CloseWellKnownConnections() | ||
| 10 | and then moved on to ddxGiveUp(), which failed to release the VT and thus | ||
| 11 | called AbortServer(), which called CloseWellKnownConnections() again. | ||
| 12 | |||
| 13 | Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | ||
| 14 | Reviewed-by: Adam Jackson <ajax@redhat.com> | ||
| 15 | --- | ||
| 16 | os/connection.c | 9 +++++++-- | ||
| 17 | 1 file changed, 7 insertions(+), 2 deletions(-) | ||
| 18 | |||
| 19 | diff --git a/os/connection.c b/os/connection.c | ||
| 20 | index ddfe50a..7ff44e1 100644 | ||
| 21 | --- a/os/connection.c | ||
| 22 | +++ b/os/connection.c | ||
| 23 | @@ -513,8 +513,13 @@ CloseWellKnownConnections(void) | ||
| 24 | { | ||
| 25 | int i; | ||
| 26 | |||
| 27 | - for (i = 0; i < ListenTransCount; i++) | ||
| 28 | - _XSERVTransClose(ListenTransConns[i]); | ||
| 29 | + for (i = 0; i < ListenTransCount; i++) { | ||
| 30 | + if (ListenTransConns[i] != NULL) { | ||
| 31 | + _XSERVTransClose(ListenTransConns[i]); | ||
| 32 | + ListenTransConns[i] = NULL; | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + ListenTransCount = 0; | ||
| 36 | } | ||
| 37 | |||
| 38 | static void | ||
diff --git a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.16.3.bb b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.16.3.bb index 347ce3ba2a..9d9ede2afc 100644 --- a/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.16.3.bb +++ b/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.16.3.bb | |||
| @@ -5,6 +5,7 @@ SRC_URI += "file://fix_open_max_preprocessor_error.patch \ | |||
| 5 | file://xorg-CVE-2013-6424.patch \ | 5 | file://xorg-CVE-2013-6424.patch \ |
| 6 | file://xshmfence-option.patch \ | 6 | file://xshmfence-option.patch \ |
| 7 | file://Fix-subwindow-in-Xi-emulated-events.patch \ | 7 | file://Fix-subwindow-in-Xi-emulated-events.patch \ |
| 8 | file://xtrans.patch \ | ||
| 8 | " | 9 | " |
| 9 | 10 | ||
| 10 | SRC_URI[md5sum] = "afd93977235584a9caa7528a737c1b52" | 11 | SRC_URI[md5sum] = "afd93977235584a9caa7528a737c1b52" |
