diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/ccl.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index bef208cc3f9..54678a2dccf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-02-01 Kenichi Handa <handa@ni.aist.go.jp> + + * ccl.c (CCL_WRITE_CHAR): Fix overflow checking. + (CCL_WRITE_MULTIBYTE_CHAR): Likewise. + 2008-01-31 Kenichi Handa <handa@ni.aist.go.jp> * keyboard.c (make_ctrl_char): If C is a multibyte character, just diff --git a/src/ccl.c b/src/ccl.c index 59bd6a8e17f..f0c078228df 100644 --- a/src/ccl.c +++ b/src/ccl.c @@ -748,7 +748,7 @@ while(0) int bytes = SINGLE_BYTE_CHAR_P (ch) ? 1: CHAR_BYTES (ch); \ if (!dst) \ CCL_INVALID_CMD; \ - else if (dst + bytes + extra_bytes < (dst_bytes ? dst_end : src)) \ + else if (dst + bytes + extra_bytes <= (dst_bytes ? dst_end : src)) \ { \ if (bytes == 1) \ { \ @@ -775,7 +775,7 @@ while(0) int bytes = CHAR_BYTES (ch); \ if (!dst) \ CCL_INVALID_CMD; \ - else if (dst + bytes + extra_bytes < (dst_bytes ? dst_end : src)) \ + else if (dst + bytes + extra_bytes <= (dst_bytes ? dst_end : src)) \ { \ if (CHAR_VALID_P ((ch), 0)) \ dst += CHAR_STRING ((ch), dst); \ |