* coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
This commit is contained in:
parent
876d043fad
commit
205ededbb2
2 changed files with 7 additions and 7 deletions
11
src/coding.c
11
src/coding.c
|
@ -7273,15 +7273,12 @@ produce_charset (struct coding_system *coding, int *charbuf, ptrdiff_t pos)
|
|||
|
||||
#define ALLOC_CONVERSION_WORK_AREA(coding, size) \
|
||||
do { \
|
||||
int units = (size) + MAX_CHARBUF_EXTRA_SIZE; \
|
||||
\
|
||||
if (units > MAX_CHARBUF_SIZE) \
|
||||
units = MAX_CHARBUF_SIZE; \
|
||||
coding->charbuf = SAFE_ALLOCA ((units) * sizeof (int)); \
|
||||
coding->charbuf_size = (units); \
|
||||
ptrdiff_t units = min ((size) + MAX_CHARBUF_EXTRA_SIZE, \
|
||||
MAX_CHARBUF_SIZE); \
|
||||
coding->charbuf = SAFE_ALLOCA (units * sizeof (int)); \
|
||||
coding->charbuf_size = units; \
|
||||
} while (0)
|
||||
|
||||
|
||||
static void
|
||||
produce_annotation (struct coding_system *coding, ptrdiff_t pos)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue