[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/changelog                         |   11 ++
 debian/patches/100_rethrow_signals.patch |  119 ++++++++++++++++---------------
 debian/patches/series                    |    2 
 3 files changed, 77 insertions(+), 55 deletions(-)

New commits:
commit 7d65b7d399f5902cb3a3153b43dd8f3e627b7d08
Author: Bryce Harrington <bryce@bryceharrington.org>
Date:   Wed Feb 3 17:46:05 2010 -0800

    Fix from martin to get signal handling code to stop crashing during
    signal handling.  exit(1) does need to be called after the signal is
    re-raised.

diff --git a/debian/changelog b/debian/changelog
index 7ed940e..ba13427 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+xorg-server (2:1.7.3.902-1ubuntu10) lucid; urgency=low
+
+  * 100_rethrow_signals.patch: Fix SigAbortServer to cleanly exit(1) on a
+    non-signal crash, as the original upstream code does. Not exiting leads to
+    continuing back into the code which threw the error, which eventually
+    leads to writing into the already closed log file and other operations
+    which cause segfaults.
+  * Re-enable 100_rethrow_signals.patch.  Hello apport.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com>  Wed, 03 Feb 2010 17:29:53 -0800
+
 xorg-server (2:1.7.3.902-1ubuntu9) lucid; urgency=low
 
   * Fully disable 100_rethrow_signals.patch as it seems to still cause
diff --git a/debian/patches/100_rethrow_signals.patch b/debian/patches/100_rethrow_signals.patch
index 97545e5..809d459 100644
--- a/debian/patches/100_rethrow_signals.patch
+++ b/debian/patches/100_rethrow_signals.patch
@@ -1,7 +1,8 @@
-diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-git-working/hw/dmx/dmxinit.c
---- xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c	2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/dmx/dmxinit.c	2009-12-15 17:25:56.000000000 -0800
-@@ -834,7 +834,7 @@ static void dmxSetDefaultFontPath(char *
+Index: xorg-server-1.7.3.902/hw/dmx/dmxinit.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/dmx/dmxinit.c	2009-12-25 15:28:41.000000000 -0800
++++ xorg-server-1.7.3.902/hw/dmx/dmxinit.c	2010-02-03 17:29:02.000000000 -0800
+@@ -834,7 +834,7 @@
  /** This function is called in Xserver/os/utils.c from \a AbortServer().
   * We must ensure that backend and console state is restored in the
   * event the server shutdown wasn't clean. */
@@ -10,7 +11,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-gi
  {
      int i;
  
-@@ -846,6 +846,11 @@ void AbortDDX(void)
+@@ -846,6 +846,11 @@
      }
  }
  
@@ -22,10 +23,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-gi
  /** This function is called in Xserver/dix/main.c from \a main() when
   * dispatchException & DE_TERMINATE (which is the only way to exit the
   * main loop without an interruption. */
-diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubuntu-git-working/hw/kdrive/src/kdrive.c
---- xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c	2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/kdrive/src/kdrive.c	2009-12-15 17:30:49.000000000 -0800
-@@ -322,7 +322,7 @@ KdProcessSwitch (void)
+Index: xorg-server-1.7.3.902/hw/kdrive/src/kdrive.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/kdrive/src/kdrive.c	2009-10-27 23:56:21.000000000 -0700
++++ xorg-server-1.7.3.902/hw/kdrive/src/kdrive.c	2010-02-03 17:29:02.000000000 -0800
+@@ -322,7 +322,7 @@
  }
  
  void
@@ -34,7 +36,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubu
  {
      KdDisableScreens ();
      if (kdOsFuncs)
-@@ -339,6 +339,12 @@ AbortDDX(void)
+@@ -339,6 +339,12 @@
  }
  
  void
@@ -47,10 +49,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubu
  ddxGiveUp (void)
  {
      AbortDDX ();
-diff -Nurp xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c xorg-server-ubuntu-git-working/hw/vfb/InitOutput.c
---- xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c	2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/vfb/InitOutput.c	2009-12-15 16:25:37.000000000 -0800
-@@ -214,11 +214,17 @@ ddxGiveUp(void)
+Index: xorg-server-1.7.3.902/hw/vfb/InitOutput.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/vfb/InitOutput.c	2009-10-27 23:56:21.000000000 -0700
++++ xorg-server-1.7.3.902/hw/vfb/InitOutput.c	2010-02-03 17:29:02.000000000 -0800
+@@ -214,11 +214,17 @@
  }
  
  void
@@ -69,10 +72,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c xorg-server-ubuntu
  #ifdef __APPLE__
  void
  DarwinHandleGUI(int argc, char *argv[])
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Events.c
---- xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c	2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Events.c	2009-12-15 14:25:32.000000000 -0800
-@@ -355,6 +355,8 @@ xf86InterceptSigIll(void (*sigillhandler
+Index: xorg-server-1.7.3.902/hw/xfree86/common/xf86Events.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xfree86/common/xf86Events.c	2009-11-29 21:42:31.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xfree86/common/xf86Events.c	2010-02-03 17:29:02.000000000 -0800
+@@ -355,6 +355,8 @@
  int
  xf86SigWrapper(int signo)
  {
@@ -81,10 +85,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c xorg-se
    if ((signo == SIGILL) && xf86SigIllHandler) {
      (*xf86SigIllHandler)();
      return 0; /* continue */
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Init.c
---- xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c	2009-12-15 11:53:14.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Init.c	2009-12-15 11:54:07.000000000 -0800
-@@ -1188,14 +1188,17 @@ OsVendorInit(void)
+Index: xorg-server-1.7.3.902/hw/xfree86/common/xf86Init.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xfree86/common/xf86Init.c	2009-12-25 15:28:41.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xfree86/common/xf86Init.c	2010-02-03 17:29:02.000000000 -0800
+@@ -1174,14 +1174,17 @@
  }
  
  /*
@@ -104,7 +109,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
  {
      int i;
  
-@@ -1221,24 +1224,45 @@ ddxGiveUp(void)
+@@ -1207,24 +1210,45 @@
  
      xf86CloseConsole();
  
@@ -154,7 +159,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
  {
    int i;
  
-@@ -1269,7 +1295,20 @@ AbortDDX(void)
+@@ -1255,7 +1279,20 @@
     * This is needed for an abnormal server exit, since the normal exit stuff
     * MUST also be performed (i.e. the vt must be left in a defined state)
     */
@@ -176,10 +181,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
  }
  
  void
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xnest/Init.c xorg-server-ubuntu-git-working/hw/xnest/Init.c
---- xorg-server-ubuntu-git-patched/hw/xnest/Init.c	2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xnest/Init.c	2009-12-15 17:20:01.000000000 -0800
-@@ -112,12 +112,17 @@ InitInput(int argc, char *argv[])
+Index: xorg-server-1.7.3.902/hw/xnest/Init.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xnest/Init.c	2009-10-27 23:56:22.000000000 -0700
++++ xorg-server-1.7.3.902/hw/xnest/Init.c	2010-02-03 17:29:02.000000000 -0800
+@@ -112,12 +112,17 @@
  /*
   * DDX - specific abort routine.  Called by AbortServer().
   */
@@ -198,10 +204,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xnest/Init.c xorg-server-ubuntu-git
  /* Called by GiveUp(). */
  void ddxGiveUp(void)
  {
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu-git-working/hw/xquartz/darwin.c
---- xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c	2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xquartz/darwin.c	2009-12-15 17:31:50.000000000 -0800
-@@ -798,12 +798,12 @@ void ddxGiveUp( void )
+Index: xorg-server-1.7.3.902/hw/xquartz/darwin.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xquartz/darwin.c	2009-10-27 23:56:22.000000000 -0700
++++ xorg-server-1.7.3.902/hw/xquartz/darwin.c	2010-02-03 17:29:02.000000000 -0800
+@@ -798,12 +798,12 @@
  
  
  /*
@@ -216,7 +223,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu
  {
      ErrorF( "   AbortDDX\n" );
      /*
-@@ -813,6 +813,11 @@ void AbortDDX( void )
+@@ -813,6 +813,11 @@
      ddxGiveUp();
  }
  
@@ -228,10 +235,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu
  #include "mivalidate.h" // for union _Validate used by windowstr.h
  #include "windowstr.h"  // for struct _Window
  #include "scrnintstr.h" // for struct _Screen
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubuntu-git-working/hw/xwin/InitOutput.c
---- xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c	2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xwin/InitOutput.c	2009-12-15 17:32:36.000000000 -0800
-@@ -283,7 +283,7 @@ ddxGiveUp (void)
+Index: xorg-server-1.7.3.902/hw/xwin/InitOutput.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xwin/InitOutput.c	2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xwin/InitOutput.c	2010-02-03 17:29:02.000000000 -0800
+@@ -283,7 +283,7 @@
  
  /* See Porting Layer Definition - p. 57 */
  void
@@ -240,7 +248,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubunt
  {
  #if CYGDEBUG
    winDebug ("AbortDDX\n");
-@@ -291,6 +291,12 @@ AbortDDX (void)
+@@ -291,6 +291,12 @@
    ddxGiveUp ();
  }
  
@@ -253,10 +261,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubunt
  #ifdef __CYGWIN__
  /* hasmntopt is currently not implemented for cygwin */
  static const char *winCheckMntOpt(const struct mntent *mnt, const char *opt)
-diff -Nurp xorg-server-ubuntu-git-patched/include/os.h xorg-server-ubuntu-git-working/include/os.h
---- xorg-server-ubuntu-git-patched/include/os.h	2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/include/os.h	2009-12-15 11:54:07.000000000 -0800
-@@ -434,7 +434,9 @@ typedef struct {
+Index: xorg-server-1.7.3.902/include/os.h
+===================================================================
+--- xorg-server-1.7.3.902.orig/include/os.h	2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/include/os.h	2010-02-03 17:29:02.000000000 -0800
+@@ -434,7 +434,9 @@
  /* stuff for FlushCallback */
  extern _X_EXPORT CallbackListPtr FlushCallback;
  
@@ -266,10 +275,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/include/os.h xorg-server-ubuntu-git-wo
  extern _X_EXPORT void ddxGiveUp(void);
  extern _X_EXPORT int TimeSinceLastInputEvent(void);
  
-diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-working/os/log.c
---- xorg-server-ubuntu-git-patched/os/log.c	2009-12-15 11:53:14.000000000 -0800
-+++ xorg-server-ubuntu-git-working/os/log.c	2009-12-15 14:21:41.000000000 -0800
-@@ -413,11 +413,12 @@ LogMessage(MessageType type, const char 
+Index: xorg-server-1.7.3.902/os/log.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/os/log.c	2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/os/log.c	2010-02-03 17:29:30.000000000 -0800
+@@ -389,11 +389,12 @@
  }
  
  #ifdef __GNUC__
@@ -283,7 +293,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
  {
  #ifdef XF86BIGFONT
      XF86BigfontCleanup();
-@@ -425,11 +426,21 @@ AbortServer(void)
+@@ -401,11 +402,21 @@
      CloseWellKnownConnections();
      OsCleanup(TRUE);
      CloseDownDevices();
@@ -298,8 +308,8 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
 +            raise(signo);
 +        else
 +            abort();
-+    }
-+    /* exit (1); */
++    } else
++	exit (1);
 +}
 +
 +void
@@ -309,7 +319,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
  }
  
  #define AUDIT_PREFIX "AUDIT: %s: %ld: "
-@@ -532,6 +543,27 @@ VAuditF(const char *f, va_list args)
+@@ -508,6 +519,27 @@
  }
  
  void
@@ -337,10 +347,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
  FatalError(const char *f, ...)
  {
      va_list args;
-diff -Nurp xorg-server-ubuntu-git-patched/os/osinit.c xorg-server-ubuntu-git-working/os/osinit.c
---- xorg-server-ubuntu-git-patched/os/osinit.c	2009-12-15 11:52:56.000000000 -0800
-+++ xorg-server-ubuntu-git-working/os/osinit.c	2009-12-15 14:28:37.000000000 -0800
-@@ -148,13 +148,13 @@ OsSigHandler(int signo)
+Index: xorg-server-1.7.3.902/os/osinit.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/os/osinit.c	2009-10-27 23:56:24.000000000 -0700
++++ xorg-server-1.7.3.902/os/osinit.c	2010-02-03 17:29:02.000000000 -0800
+@@ -148,13 +148,13 @@
            case SIGBUS:
            case SIGILL:
            case SIGFPE:
diff --git a/debian/patches/series b/debian/patches/series
index dbb7ec9..625d6ac 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,7 +11,7 @@
 13-configure-config-udev-defaults-to-off-for-now.diff
 14-config-add-example-udev-rules.diff
 15-config-udev-look-for-xkb-rules-model-layout-variant-.diff
-#100_rethrow_signals.patch
+100_rethrow_signals.patch
 101_nv-crash-fix.diff
 #104_nvidia_autodetect.patch
 #105_fglrx_autodetect.patch


Reply to: