GNU bug report logs - #1009
Carbon: posix-file-name-to-mac

Previous Next

Package: emacs22;

Reported by: David Reitter <david.reitter <at> gmail.com>

Date: Sat, 20 Sep 2008 12:40:05 UTC

Severity: normal

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: David Reitter <david.reitter <at> gmail.com>
Subject: bug#1009: closed (Re: bug#1009: Carbon: posix-file-name-to-mac)
Date: Thu, 10 Mar 2011 06:48:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#1009: Carbon: posix-file-name-to-mac

which was filed against the emacs22 package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 1009 <at> debbugs.gnu.org.

-- 
1009: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1009
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Glenn Morris <rgm <at> gnu.org>
To: 1009-done <at> debbugs.gnu.org
Subject: Re: bug#1009: Carbon: posix-file-name-to-mac
Date: Thu, 10 Mar 2011 01:47:15 -0500
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.

[Message part 3 (message/rfc822, inline)]
From: David Reitter <david.reitter <at> gmail.com>
To: emacs-pretest-bug <at> gnu.org
Subject: Carbon: posix-file-name-to-mac
Date: Sat, 20 Sep 2008 08:33:22 -0400
[Message part 4 (text/plain, inline)]
(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 (application/pkcs7-signature, attachment)]

This bug report was last modified 14 years and 134 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.