props[props_idx]->num_vals = 1;
props[props_idx]->vals = &values[val_idx++];
props[props_idx]->vals[0].length = strlen (cwd);
- props[props_idx]->vals[0].value = cwd;
+ props[props_idx]->vals[0].value = xstrdup (cwd);
++props_idx;
}
props[props_idx]->vals[vp_idx].length = strlen (emacs_program);
props[props_idx]->vals[vp_idx++].value = emacs_program;
- smid_opt = xmalloc (strlen (SMID_OPT) + strlen (client_id) + 1);
+ smid_opt = xmalloc_atomic (strlen (SMID_OPT) + strlen (client_id) + 1);
strcpy (smid_opt, SMID_OPT);
strcat (smid_opt, client_id);
if (cwd)
{
- chdir_opt = xmalloc (strlen (CHDIR_OPT) + strlen (cwd) + 1);
+ chdir_opt = xmalloc_atomic (strlen (CHDIR_OPT) + strlen (cwd) + 1);
strcpy (chdir_opt, CHDIR_OPT);
strcat (chdir_opt, cwd);
xfree (smid_opt);
xfree (chdir_opt);
- xfree (cwd);
+ free (cwd);
xfree (vp);
for (i = 0; i < props_idx; ++i)
/* This malloc will not be freed, but it is only done once, and hopefully
not very large */
- emacs_program = xmalloc (name_len + 1);
+ emacs_program = xmalloc_atomic (name_len + 1);
emacs_program[0] = '\0';
if (! EQ (Vinvocation_directory, Qnil))