[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 9bdd1c4 1/2: * src/xsmfns.c (x_session_initialize):
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] master 9bdd1c4 1/2: * src/xsmfns.c (x_session_initialize): Avoid libSM crash |
Date: |
Sat, 13 Jun 2015 23:42:09 +0000 |
branch: master
commit 9bdd1c4c90bc19904f63361c32ebd4304f038aaf
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>
* src/xsmfns.c (x_session_initialize): Avoid libSM crash
when starup directory is missing. (Bug#18851)
(errno.h): Include it.
---
src/xsmfns.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 48aaa9b..3b06f71 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -28,6 +28,7 @@ along with GNU Emacs. If not, see
<http://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <sys/param.h>
+#include <errno.h>
#include <stdio.h>
#include "lisp.h"
@@ -402,6 +403,14 @@ x_session_initialize (struct x_display_info *dpyinfo)
SmcCallbacks callbacks;
ptrdiff_t name_len = 0;
+ /* libSM seems to crash if pwd is missing - see bug#18851. */
+ if (! get_current_dir_name ())
+ {
+ fprintf (stderr, "Disabling session management due to pwd error: %s\n",
+ emacs_strerror (errno));
+ return;
+ }
+
ice_fd = -1;
doing_interact = false;