aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1997-07-12 06:51:51 +0000
committerRichard M. Stallman1997-07-12 06:51:51 +0000
commit662c2ef22a23cc19de6cdd1c151e08795ffd5b17 (patch)
tree1981a8606ed875ac2f31199128c1380a32b3ec92
parent39ce6952863cb0dfcb5bce5bade141bf69dd9f77 (diff)
downloademacs-662c2ef22a23cc19de6cdd1c151e08795ffd5b17.tar.gz
emacs-662c2ef22a23cc19de6cdd1c151e08795ffd5b17.zip
(lock_file_1): Don't crash if Fuser_login_name or
Fsystem_name don't return strings. (current_lock_owner): Likewise.
-rw-r--r--src/filelock.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/filelock.c b/src/filelock.c
index d92e0476bad..5000f87a615 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -133,10 +133,20 @@ lock_file_1 (lfname, force)
133 int force; 133 int force;
134{ 134{
135 register int err; 135 register int err;
136 char *user_name = (char *) XSTRING (Fuser_login_name (Qnil))->data; 136 char *user_name;
137 char *host_name = (char *) XSTRING (Fsystem_name ())->data; 137 char *host_name;
138 char *lock_info_str = alloca (strlen (user_name) + strlen (host_name) 138 char *lock_info_str;
139 + LOCK_PID_MAX + 5); 139
140 if (STRINGP (Fuser_login_name (Qnil)))
141 user_name = XSTRING (Fuser_login_name (Qnil))->data;
142 else
143 user_name = "";
144 if (STRINGP (Fsystem_name ()))
145 host_name = XSTRING (Fsystem_name ())->data;
146 else
147 host_name = "";
148 lock_info_str = alloca (strlen (user_name) + strlen (host_name)
149 + LOCK_PID_MAX + 5);
140 150
141 sprintf (lock_info_str, "%s@%s.%lu", user_name, host_name, 151 sprintf (lock_info_str, "%s@%s.%lu", user_name, host_name,
142 (unsigned long) getpid ()); 152 (unsigned long) getpid ());
@@ -225,7 +235,8 @@ current_lock_owner (owner, lfname)
225 xfree (lfinfo); 235 xfree (lfinfo);
226 236
227 /* On current host? */ 237 /* On current host? */
228 if (strcmp (owner->host, XSTRING (Fsystem_name ())->data) == 0) 238 if (STRINGP (Fsystem_name ())
239 && strcmp (owner->host, XSTRING (Fsystem_name ())->data) == 0)
229 { 240 {
230 if (owner->pid == getpid ()) 241 if (owner->pid == getpid ())
231 ret = 2; /* We own it. */ 242 ret = 2; /* We own it. */