forked from pool/xorg-x11-server
Accepting request 186606 from home:eeich:branches:X11:XOrg
- Delete N_0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch: This patch is no longer appicable. The code has been reworked completely thus the problem fixed with this most likely no longer exists. - Delete N_Use-external-tool-for-creating-backtraces-on-crashes.patch: This feature has multiple issues, there is no reason to keep the patch around. OBS-URL: https://build.opensuse.org/request/show/186606 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=455
This commit is contained in:
parent
27d184c295
commit
2353c998af
@ -1,42 +0,0 @@
|
||||
>From 829037395f8b93e69a30852a95e378f78c3ccd6b Mon Sep 17 00:00:00 2001
|
||||
From: Luc Verhaegen <libv@skynet.be>
|
||||
Date: Wed, 12 Nov 2008 17:09:33 +0100
|
||||
Subject: [PATCH] Xinput: Catch missing configlayout when deleting device.
|
||||
|
||||
In DeleteInputDeviceRequest (xf86Xinput.c), we access idev members
|
||||
even if idev is null. This takes down the xserver hard in some cases
|
||||
(kernel SIGABRT), and segfaults on other cases.
|
||||
================================================================================
|
||||
--- xorg-server-1.7.99/hw/xfree86/common/xf86Xinput.c
|
||||
+++ xorg-server-1.7.99/hw/xfree86/common/xf86Xinput.c
|
||||
@@ -870,17 +870,20 @@
|
||||
else
|
||||
xf86DeleteInput(pInfo, 0);
|
||||
|
||||
- /* devices added through HAL aren't in the config layout */
|
||||
- it = xf86ConfigLayout.inputs;
|
||||
- while(*it && *it != idev)
|
||||
- it++;
|
||||
-
|
||||
- if (!(*it)) /* end of list, not in the layout */
|
||||
+ if (idev)
|
||||
{
|
||||
- free(idev->driver);
|
||||
- free(idev->identifier);
|
||||
- xf86optionListFree(idev->commonOptions);
|
||||
- free(idev);
|
||||
+ /* devices added through HAL aren't in the config layout */
|
||||
+ it = xf86ConfigLayout.inputs;
|
||||
+ while(*it && *it != idev)
|
||||
+ it++;
|
||||
+
|
||||
+ if (!(*it)) /* end of list, not in the layout */
|
||||
+ {
|
||||
+ free(idev->driver);
|
||||
+ free(idev->identifier);
|
||||
+ xf86optionListFree(idev->commonOptions);
|
||||
+ free(idev);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
OsReleaseSignals();
|
@ -1,123 +0,0 @@
|
||||
From bb4e768eaf8025d3ccf369cbad9a9b8be721e7ac Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Hopf <mhopf@suse.de>
|
||||
Date: Wed, 25 Aug 2010 14:12:48 +0200
|
||||
Subject: [PATCH] Use external tool for creating backtraces on crashes if available.
|
||||
|
||||
This calls /usr/bin/xorg-backtrace to create reasonable commented backtraces
|
||||
with gdb. On errors it falls back to the generic method.
|
||||
|
||||
Signed-off-by: Matthias Hopf <mhopf@suse.de>
|
||||
---
|
||||
os/backtrace.c | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 files changed, 82 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/os/backtrace.c b/os/backtrace.c
|
||||
index 7ca6dab..1e3201a 100644
|
||||
--- a/os/backtrace.c
|
||||
+++ b/os/backtrace.c
|
||||
@@ -28,6 +28,81 @@
|
||||
#include "os.h"
|
||||
#include "misc.h"
|
||||
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/wait.h>
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <unistd.h>
|
||||
+#include <errno.h>
|
||||
+
|
||||
+#define XORG_BACKTRACE "/usr/bin/xorg-backtrace"
|
||||
+
|
||||
+/* Call gdb to create reasonable(!) backtrace. Returns 0 if successfull. */
|
||||
+static int xorg_backtrace_gdb(void)
|
||||
+{
|
||||
+ static const char *xorg_backtrace = XORG_BACKTRACE;
|
||||
+ char pidstr[12];
|
||||
+ char fdname[] = "/tmp/xorg.XXXXXX";
|
||||
+ char buf[256];
|
||||
+ pid_t pid;
|
||||
+ int fd, status = -1, ret;
|
||||
+ FILE *f;
|
||||
+
|
||||
+ if (access (xorg_backtrace, R_OK | X_OK) != 0) {
|
||||
+ ErrorF ("%s not found, using internal backtrace system\n", xorg_backtrace);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ if ( (fd = mkstemp (fdname)) == -1) {
|
||||
+ ErrorF ("xorg_backtrace_gdb internal error 1\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ unlink (fdname);
|
||||
+ snprintf (pidstr, 12, "%d", getpid());
|
||||
+
|
||||
+ switch ( (pid = fork()) ) {
|
||||
+ case 0:
|
||||
+ close (0);
|
||||
+ close (1);
|
||||
+ close (2);
|
||||
+ dup2 (fd, 1);
|
||||
+ dup2 (fd, 2);
|
||||
+ close (fd);
|
||||
+ execl (xorg_backtrace, xorg_backtrace, pidstr, NULL);
|
||||
+ exit (-1);
|
||||
+ case -1:
|
||||
+ close (fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ while (waitpid (pid, &status, 0) == -1 && errno == EINTR)
|
||||
+ ;
|
||||
+ if (WIFEXITED (status) && WEXITSTATUS (status) == 0)
|
||||
+ ret = 0;
|
||||
+ else {
|
||||
+ ErrorF ("%s failed with returncode %d\n", xorg_backtrace, WEXITSTATUS (status));
|
||||
+ ret = 1;
|
||||
+ }
|
||||
+
|
||||
+ lseek (fd, 0, SEEK_SET);
|
||||
+ if (! (f = fdopen (fd, "r"))) {
|
||||
+ ErrorF ("xorg_backtrace_gdb internal error 2\n");
|
||||
+ close (fd);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ status = 0;
|
||||
+ while (fgets (buf, 256, f)) {
|
||||
+ status++;
|
||||
+ ErrorF("%s", buf);
|
||||
+ }
|
||||
+ fclose (f);
|
||||
+ if (status < 10 && ret == 0) {
|
||||
+ ErrorF ("%s only produced %d lines of output\n", xorg_backtrace, status);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
#ifdef HAVE_BACKTRACE
|
||||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
@@ -41,6 +116,10 @@ void xorg_backtrace(void)
|
||||
const char *mod;
|
||||
int size, i;
|
||||
Dl_info info;
|
||||
+
|
||||
+ if (xorg_backtrace_gdb () == 0)
|
||||
+ return;
|
||||
+
|
||||
ErrorF("\nBacktrace:\n");
|
||||
size = backtrace(array, 64);
|
||||
for (i = 0; i < size; i++) {
|
||||
@@ -182,6 +261,9 @@ static int xorg_backtrace_pstack(void) {
|
||||
|
||||
void xorg_backtrace(void) {
|
||||
|
||||
+ if (xorg_backtrace_gdb () == 0)
|
||||
+ return;
|
||||
+
|
||||
ErrorF("\nBacktrace:\n");
|
||||
|
||||
# ifdef HAVE_PSTACK
|
||||
--
|
||||
1.6.0.2
|
||||
|
@ -1,3 +1,13 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 9 15:08:34 UTC 2013 - eich@suse.com
|
||||
|
||||
- Delete N_0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch:
|
||||
This patch is no longer appicable. The code has been reworked completely
|
||||
thus the problem fixed with this most likely no longer exists.
|
||||
- Delete N_Use-external-tool-for-creating-backtraces-on-crashes.patch:
|
||||
This feature has multiple issues, there is no reason to keep the patch
|
||||
around.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 9 13:25:41 UTC 2013 - tobias.johannes.klausmann@mni.thm.de
|
||||
|
||||
|
@ -129,8 +129,6 @@ Patch106: N_randr1_1-sig11.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch112: N_fix-dpi-values.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch125: N_0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch127: N_dpms_screensaver.diff
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch143: n_autoconf-On-Linux-give-fbdev-driver-a-higher-precedence-than-vesa.patch
|
||||
@ -151,8 +149,6 @@ Patch211: N_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patc
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch213: N_xorg-server-xdmcp.patch
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch220: N_Use-external-tool-for-creating-backtraces-on-crashes.patch
|
||||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||||
Patch222: N_sync-fix.patch
|
||||
|
||||
Patch226: u_vgaHW-no-legacy.patch
|
||||
@ -227,8 +223,6 @@ cp %{SOURCE96} .
|
||||
%patch103
|
||||
%patch106 -p1
|
||||
%patch112 -p0
|
||||
### disabled for now
|
||||
#%patch125 -p1
|
||||
%patch127 -p1
|
||||
%patch143 -p1
|
||||
%patch145 -p0
|
||||
@ -241,8 +235,6 @@ cp %{SOURCE96} .
|
||||
### disabled for now
|
||||
#%patch211 -p1
|
||||
%patch213 -p1
|
||||
### Disable backtrace generation patch for now
|
||||
#%patch220 -p1
|
||||
### patch222 might not be applicable anymore
|
||||
#%patch222 -p1
|
||||
%patch226 -p0
|
||||
|
Loading…
Reference in New Issue
Block a user