]> git.eshelyaron.com Git - emacs.git/commitdiff
* fileio.c (Ffile_name_directory, Fexpand_file_name): Copy string data properly ...
authorChong Yidong <cyd@stupidchicken.com>
Tue, 7 Jul 2009 22:48:04 +0000 (22:48 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Tue, 7 Jul 2009 22:48:04 +0000 (22:48 +0000)
src/ChangeLog
src/fileio.c

index f4767c4c22661e9589403021771ef979a1fa4d86..deaed0fbc824ba433ed04194f8d0f70ffacdf939 100644 (file)
@@ -1,7 +1,7 @@
 2009-07-07  Chong Yidong  <cyd@stupidchicken.com>
 
-       * fileio.c (Fsubstitute_in_file_name): Copy string data
-       properly (Bug#3772).
+       * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
+       (Fexpand_file_name): Copy string data properly (Bug#3772).
 
 2009-07-07  Kenichi Handa  <handa@m17n.org>
 
index 8529455071fb74275ddb1690f256af0fa502539c..bf96b3aa2b133377555c631f10cb579d08de9074 100644 (file)
@@ -422,9 +422,11 @@ Given a Unix syntax file name, returns a string ending in slash.  */)
     return call2 (handler, Qfile_name_directory, filename);
 
   filename = FILE_SYSTEM_CASE (filename);
-  beg = SDATA (filename);
 #ifdef DOS_NT
-  beg = strcpy (alloca (strlen (beg) + 1), beg);
+  beg = (unsigned char *) alloca (SBYTES (filename) + 1);
+  bcopy (SDATA (filename), beg, SBYTES (filename) + 1);
+#else
+  beg = SDATA (filename);
 #endif
   p = beg + SBYTES (filename);
 
@@ -939,10 +941,9 @@ filesystem tree, not (expand-file-name ".."  dirname).  */)
        }
     }
 
-  nm = SDATA (name);
-
   /* Make a local copy of nm[] to protect it from GC in DECODE_FILE below. */
-  nm = strcpy (alloca (strlen (nm) + 1), nm);
+  nm = (unsigned char *) alloca (SBYTES (name) + 1);
+  bcopy (SDATA (name), nm, SBYTES (name) + 1);
 
 #ifdef DOS_NT
   /* Note if special escape prefix is present, but remove for now.  */