emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master be5e934: Don't send bad SM messages.


From: Jan D.
Subject: [Emacs-diffs] master be5e934: Don't send bad SM messages.
Date: Sat, 28 Mar 2015 11:33:40 +0000

branch: master
commit be5e9348dc137d06655676e686f153cf33de4f28
Author: Jan D <address@hidden>
Commit: Jan D <address@hidden>

    Don't send bad SM messages.
    
    * xsmfns.c (smc_save_yourself_CB): Return if Vinvocation_name or
    user_login_name are not strings.
---
 src/ChangeLog |    5 +++++
 src/xsmfns.c  |   46 ++++++++++++++++++++++------------------------
 2 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 0cc0a42..7874910 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-28  Jan Djärv  <address@hidden>
+
+       * xsmfns.c (smc_save_yourself_CB): Return if Vinvocation_name or
+       user_login_name are not strings.
+
 2015-03-28  Eli Zaretskii  <address@hidden>
 
        * w32.c (sys_connect): Fix a mistake in previous commit that broke
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 375b51c..48aaa9b 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -169,6 +169,11 @@ smc_save_yourself_CB (SmcConn smcConn,
   int props_idx = 0;
   int i;
   char *smid_opt, *chdir_opt = NULL;
+  Lisp_Object user_login_name = Fuser_login_name (Qnil);
+
+  // Must have these.
+  if (! STRINGP (Vinvocation_name) || ! STRINGP (user_login_name))
+    return;
 
   /* How to start a new instance of Emacs.  */
   props[props_idx] = &prop_ptr[props_idx];
@@ -180,32 +185,25 @@ smc_save_yourself_CB (SmcConn smcConn,
   props[props_idx]->vals[0].value = emacs_program;
   ++props_idx;
 
-  if (STRINGP (Vinvocation_name))
-    {
-      /* The name of the program.  */
-      props[props_idx] = &prop_ptr[props_idx];
-      props[props_idx]->name = xstrdup (SmProgram);
-      props[props_idx]->type = xstrdup (SmARRAY8);
-      props[props_idx]->num_vals = 1;
-      props[props_idx]->vals = &values[val_idx++];
-      props[props_idx]->vals[0].length = SBYTES (Vinvocation_name);
-      props[props_idx]->vals[0].value = SDATA (Vinvocation_name);
-      ++props_idx;
-    }
+  /* The name of the program.  */
+  props[props_idx] = &prop_ptr[props_idx];
+  props[props_idx]->name = xstrdup (SmProgram);
+  props[props_idx]->type = xstrdup (SmARRAY8);
+  props[props_idx]->num_vals = 1;
+  props[props_idx]->vals = &values[val_idx++];
+  props[props_idx]->vals[0].length = SBYTES (Vinvocation_name);
+  props[props_idx]->vals[0].value = SDATA (Vinvocation_name);
+  ++props_idx;
 
   /* User id.  */
-  Lisp_Object user_login_name = Fuser_login_name (Qnil);
-  if (STRINGP (user_login_name))
-    {
-      props[props_idx] = &prop_ptr[props_idx];
-      props[props_idx]->name = xstrdup (SmUserID);
-      props[props_idx]->type = xstrdup (SmARRAY8);
-      props[props_idx]->num_vals = 1;
-      props[props_idx]->vals = &values[val_idx++];
-      props[props_idx]->vals[0].length = SBYTES (user_login_name);
-      props[props_idx]->vals[0].value = SDATA (user_login_name);
-      ++props_idx;
-    }
+  props[props_idx] = &prop_ptr[props_idx];
+  props[props_idx]->name = xstrdup (SmUserID);
+  props[props_idx]->type = xstrdup (SmARRAY8);
+  props[props_idx]->num_vals = 1;
+  props[props_idx]->vals = &values[val_idx++];
+  props[props_idx]->vals[0].length = SBYTES (user_login_name);
+  props[props_idx]->vals[0].value = SDATA (user_login_name);
+  ++props_idx;
 
   char *cwd = get_current_dir_name ();
   if (cwd)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]