--- Begin Message ---
Subject: |
Carbon: posix-file-name-to-mac |
Date: |
Sat, 20 Sep 2008 08:33:22 -0400 |
(posix-file-name-to-mac "~emacs/asd")
(posix-file-name-to-mac "/tmp/")
will crash a 22 branch Carbon Emacs.
A fix is below - it disables ~emacs and /tmp expansion when getpwnam
or get_temp_dir_name return NULL, which they seem to do.
(OS X has /tmp, so I'm not sure if the code isn't leftover from MacOS
and stopped working at some point.)
- D
Index: mac.c
===================================================================
RCS file: /sources/emacs/emacs/src/Attic/mac.c,v
retrieving revision 1.77.2.10
diff -c -r1.77.2.10 mac.c
*** mac.c 29 Aug 2008 08:18:07 -0000 1.77.2.10
--- mac.c 20 Sep 2008 12:29:24 -0000
***************
*** 214,237 ****
if (strncmp (p, "~emacs/", 7) == 0)
{
struct passwd *pw = getpwnam ("emacs");
! p += 7;
! if (strlen (pw->pw_dir) + strlen (p) > MAXPATHLEN)
! return 0;
! strcpy (expanded_pathname, pw->pw_dir);
! strcat (expanded_pathname, p);
! p = expanded_pathname;
! /* now p points to the pathname with emacs dir prefix */
}
else if (strncmp (p, "/tmp/", 5) == 0)
{
char *t = get_temp_dir_name ();
! p += 5;
! if (strlen (t) + strlen (p) > MAXPATHLEN)
! return 0;
! strcpy (expanded_pathname, t);
! strcat (expanded_pathname, p);
! p = expanded_pathname;
! /* now p points to the pathname with emacs dir prefix */
}
else if (*p != '/') /* relative pathname */
strcat (mfn, ":");
--- 215,244 ----
if (strncmp (p, "~emacs/", 7) == 0)
{
struct passwd *pw = getpwnam ("emacs");
! if (pw != NULL)
! {
! p += 7;
! if (strlen (pw->pw_dir) + strlen (p) > MAXPATHLEN)
! return 0;
! strcpy (expanded_pathname, pw->pw_dir);
! strcat (expanded_pathname, p);
! p = expanded_pathname;
! /* now p points to the pathname with emacs dir prefix */
! }
}
else if (strncmp (p, "/tmp/", 5) == 0)
{
char *t = get_temp_dir_name ();
! if (t != NULL)
! {
! p += 5;
! if (strlen (t) + strlen (p) > MAXPATHLEN)
! return 0;
! strcpy (expanded_pathname, t);
! strcat (expanded_pathname, p);
! p = expanded_pathname;
! /* now p points to the pathname with emacs dir prefix */
! }
}
else if (*p != '/') /* relative pathname */
strcat (mfn, ":");
smime.p7s
Description: S/MIME cryptographic signature
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#1009: Carbon: posix-file-name-to-mac |
Date: |
Thu, 10 Mar 2011 01:47:15 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Thanks for the report. Emacs 22 is very old and has not been supported
for some time. The latest version is 23.3. Please open new reports for
any issues you have with the new version.
--- End Message ---