Set members of the struct coding_system before accessing them (bug#9910,9911,9912).

This commit is contained in:
Kenichi Handa 2011-11-07 10:57:07 +09:00
parent 56c31147dc
commit a0241d014e
4 changed files with 14 additions and 1 deletions

View 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)

View 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;

View 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

View 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. */