On Mon, Dec 08, 2008 at 02:44:31PM +0000, Chong Yidong wrote: > Index: term.c > =================================================================== > RCS file: /sources/emacs/emacs/src/term.c,v > retrieving revision 1.229 > retrieving revision 1.230 > diff -u -b -r1.229 -r1.230 > --- term.c 27 Sep 2008 10:50:48 -0000 1.229 > +++ term.c 8 Dec 2008 14:44:30 -0000 1.230 > @@ -581,10 +581,10 @@ > required = MAX_MULTIBYTE_LENGTH * src_len; > if (encode_terminal_src_size < required) > { > - if (encode_terminal_src_size == 0) > - encode_terminal_src = xmalloc (required); > - else > + if (encode_terminal_src) > encode_terminal_src = xrealloc (encode_terminal_src, required); > + else > + encode_terminal_src = xmalloc (required); > encode_terminal_src_size = required; > } > > @@ -740,6 +740,10 @@ > if (encode_terminal_dst_size == 0) > { > encode_terminal_dst_size = encode_terminal_src_size; > + if (encode_terminal_dst) > + encode_terminal_dst = xrealloc (encode_terminal_dst, > + encode_terminal_dst_size); > + else > encode_terminal_dst = xmalloc (encode_terminal_dst_size); > } > coding->destination = encode_terminal_dst; Any reason to not simply use realloc? (realloc(NULL, size) == malloc(size)) A patch is attached in case it is ok. Emanuele