From 6eced09c3d950ee9cfa90b9ce04a998647197b3b Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Tue, 9 Mar 2004 12:27:26 +0000 Subject: [PATCH] (decode_coding_emacs_mule): Handle insufficent source correctly. --- src/ChangeLog | 5 +++++ src/coding.c | 21 +++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index bb8ef04bc6..95cec4f1f1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2004-03-09 Kenichi Handa + + * coding.c (decode_coding_emacs_mule): Handle insufficent source + correctly. + 2004-03-04 Richard M. Stallman * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS): New definition. diff --git a/src/coding.c b/src/coding.c index 62c761c5bc..76ef3026a2 100644 --- a/src/coding.c +++ b/src/coding.c @@ -1024,9 +1024,26 @@ decode_coding_emacs_mule (coding, source, destination, src_bytes, dst_bytes) } else { - bytes = CHAR_STRING (*src, tmp); - p = tmp; + int i, c; + + bytes = BYTES_BY_CHAR_HEAD (*src); src++; + for (i = 1; i < bytes; i++) + { + ONE_MORE_BYTE (c); + if (CHAR_HEAD_P (c)) + break; + } + if (i < bytes) + { + bytes = CHAR_STRING (*src_base, tmp); + p = tmp; + src = src_base + 1; + } + else + { + p = src_base; + } } if (dst + bytes >= (dst_bytes ? dst_end : src)) { -- 2.20.1