diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2021-07-21 22:21:37 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2021-07-21 22:21:37 +0930 |
commit | caf422b00bf29e3518f8dce2f57edda0f90287bd (patch) | |
tree | 5b36c8ab9fc5c21d7ac6ce527960b23a1be25ad0 /src/cairo-cff-subset.c | |
parent | ab82549f0344760988844a670133f1ad789b8a89 (diff) | |
download | cairo-caf422b00bf29e3518f8dce2f57edda0f90287bd.tar.gz |
cff: use correct size cast when decoding bytes to a signed int
Fixes #399
Diffstat (limited to 'src/cairo-cff-subset.c')
-rw-r--r-- | src/cairo-cff-subset.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c index 62340e2a8..2b713410e 100644 --- a/src/cairo-cff-subset.c +++ b/src/cairo-cff-subset.c @@ -247,10 +247,10 @@ static unsigned char * decode_integer (unsigned char *p, int *integer) { if (*p == 28) { - *integer = (int)(p[1]<<8 | p[2]); + *integer = (int16_t)(p[1]<<8 | p[2]); p += 3; } else if (*p == 29) { - *integer = (int)(((uint32_t)p[1] << 24) | (p[2] << 16) | (p[3] << 8) | p[4]); + *integer = (int32_t)(((uint32_t)p[1] << 24) | (p[2] << 16) | (p[3] << 8) | p[4]); p += 5; } else if (*p >= 32 && *p <= 246) { *integer = *p++ - 139; |