summaryrefslogtreecommitdiff
path: root/src/cairo-type1-subset.c
diff options
context:
space:
mode:
authorHeiko Lewin <hlewin@worldiety.de>2021-03-31 12:20:34 +0200
committerHeiko Lewin <hlewin@worldiety.de>2021-03-31 12:20:34 +0200
commit518ba137794243d1024634449a3e07f72b7b888e (patch)
tree3a891551b4e4074d3eee369a769be4702ba0bfd8 /src/cairo-type1-subset.c
parent44f808fce9f437e14f2b0ef4e1583def8ab578ae (diff)
downloadcairo-518ba137794243d1024634449a3e07f72b7b888e.tar.gz
Fix undefined left-shifts
Diffstat (limited to 'src/cairo-type1-subset.c')
-rw-r--r--src/cairo-type1-subset.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
index 068b59e99..2f04c8e10 100644
--- a/src/cairo-type1-subset.c
+++ b/src/cairo-type1-subset.c
@@ -222,18 +222,18 @@ cairo_type1_font_subset_find_segments (cairo_type1_font_subset_t *font)
font->type1_end = font->type1_data + font->type1_length;
if (p[0] == 0x80 && p[1] == 0x01) {
font->header_segment_size =
- p[2] | (p[3] << 8) | (p[4] << 16) | (p[5] << 24);
+ p[2] | (p[3] << 8) | (p[4] << 16) | ((uint32_t)p[5] << 24);
font->header_segment = (char *) p + 6;
p += 6 + font->header_segment_size;
font->eexec_segment_size =
- p[2] | (p[3] << 8) | (p[4] << 16) | (p[5] << 24);
+ p[2] | (p[3] << 8) | (p[4] << 16) | ((uint32_t)p[5] << 24);
font->eexec_segment = (char *) p + 6;
font->eexec_segment_is_ascii = (p[1] == 1);
p += 6 + font->eexec_segment_size;
while (p < (unsigned char *) (font->type1_end) && p[1] != 0x03) {
- size = p[2] | (p[3] << 8) | (p[4] << 16) | (p[5] << 24);
+ size = p[2] | (p[3] << 8) | (p[4] << 16) | ((uint32_t)p[5] << 24);
p += 6 + size;
}
font->type1_end = (char *) p;
@@ -714,7 +714,7 @@ cairo_type1_font_subset_decode_integer (const unsigned char *p, int *integer)
*integer = -(p[0] - 251) * 256 - p[1] - 108;
p += 2;
} else {
- *integer = (p[1] << 24) | (p[2] << 16) | (p[3] << 8) | p[4];
+ *integer = ((uint32_t)p[1] << 24) | (p[2] << 16) | (p[3] << 8) | p[4];
p += 5;
}