]> git.eshelyaron.com Git - emacs.git/commitdiff
Set members of the struct coding_system before accessing them (bug#9910,9911,9912).
authorKenichi Handa <handa@m17n.org>
Mon, 7 Nov 2011 01:57:07 +0000 (10:57 +0900)
committerKenichi Handa <handa@m17n.org>
Mon, 7 Nov 2011 01:57:07 +0000 (10:57 +0900)
src/ChangeLog
src/callproc.c
src/coding.c
src/process.c

index f198f37d0c16e1532760a2cf4e9d0f96efe0b946..3af9590134c3856e680e702de1bb4a9d43f18c51 100644 (file)
@@ -1,3 +1,14 @@
+2011-11-07  Kenichi Handa  <handa@m17n.org>
+
+       * coding.c (coding_set_destination): Check coding->src_pos only
+       when coding->src_object is a buffer (bug#9910).
+
+       * process.c (send_process): Set the member src_multibyte of coding
+       to 0 (bug#9911) when sending a unibyte text.
+
+       * callproc.c (Fcall_process): Set the member src_multibyte of
+       process_coding to 0 (bug#9912).
+
 2011-11-03  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (note_mouse_highlight): Initialize `area'.  (Bug#9947)
index 97531f738485aaa1e8019457cdb91d39fe5abb0b..0859aaef2e67b512f2032b063f820b1c9104ce78 100644 (file)
@@ -748,6 +748,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
        val = raw_text_coding_system (val);
       setup_coding_system (val, &process_coding);
     }
+  process_coding.src_multibyte = 0;
 
   immediate_quit = 1;
   QUIT;
index 5fd59d394d9f7913a90f77308903526f5a74811d..79908e9b29b9102f9e367084f474d6589d36e075 100644 (file)
@@ -1043,7 +1043,7 @@ coding_set_destination (struct coding_system *coding)
 {
   if (BUFFERP (coding->dst_object))
     {
-      if (coding->src_pos < 0)
+      if (BUFFERP (coding->src_object) && coding->src_pos < 0)
        {
          coding->destination = BEG_ADDR + coding->dst_pos_byte - BEG_BYTE;
          coding->dst_bytes = (GAP_END_ADDR
index c316139a7136939d123dd5ff07b962e50e791180..301274676d6f7c32c114ad1745ef7252f50fc37b 100644 (file)
@@ -5387,6 +5387,7 @@ send_process (volatile Lisp_Object proc, const char *volatile buf,
     }
   else
     {
+      coding->src_multibyte = 0;
       /* For sending a unibyte text, character code conversion should
         not take place but EOL conversion should.  So, setup raw-text
         or one of the subsidiary if we have not yet done it.  */