| line |
true |
false |
branch |
|
97
|
0 |
0 |
if (p + 2 > end) return -1; |
|
102
|
0 |
0 |
if (idx->count == 0) { |
|
109
|
0 |
0 |
if (p >= end) return -1; |
|
112
|
0 |
0 |
if (idx->off_size < 1 || idx->off_size > 4) return -1; |
|
|
0 |
0 |
if (idx->off_size < 1 || idx->off_size > 4) return -1; |
|
115
|
0 |
0 |
if (p + offsets_size > end) return -1; |
|
126
|
0 |
0 |
for (i = 0; i < idx->off_size; i++) { |
|
139
|
0 |
0 |
if (!idx || i > idx->count) return 0; |
|
|
0 |
0 |
if (!idx || i > idx->count) return 0; |
|
144
|
0 |
0 |
for (j = 0; j < idx->off_size; j++) { |
|
157
|
0 |
0 |
if (!idx || i >= idx->count) return NULL; |
|
|
0 |
0 |
if (!idx || i >= idx->count) return NULL; |
|
162
|
0 |
0 |
if (out_len) *out_len = end - start; |
|
185
|
0 |
0 |
if (*pp >= end) return -1; |
|
189
|
0 |
0 |
if (b0 == 30) { |
|
201
|
0 |
0 |
while (*pp < end && !done) { |
|
|
0 |
0 |
while (*pp < end && !done) { |
|
203
|
0 |
0 |
for (n = 0; n < 2 && !done; n++) { |
|
|
0 |
0 |
for (n = 0; n < 2 && !done; n++) { |
|
204
|
0 |
0 |
int nibble = (n == 0) ? (byte >> 4) : (byte & 0xF); |
|
209
|
0 |
0 |
if (in_frac) { |
|
234
|
0 |
0 |
for (i = 0; i < frac_digits; i++) { |
|
237
|
0 |
0 |
if (negative) rval = -rval; |
|
238
|
0 |
0 |
if (exp_negative) exp = -exp; |
|
248
|
0 |
0 |
if (b0 >= 32 && b0 <= 246) { |
|
|
0 |
0 |
if (b0 >= 32 && b0 <= 246) { |
|
250
|
0 |
0 |
} else if (b0 >= 247 && b0 <= 250) { |
|
|
0 |
0 |
} else if (b0 >= 247 && b0 <= 250) { |
|
251
|
0 |
0 |
if (*pp >= end) return -1; |
|
253
|
0 |
0 |
} else if (b0 >= 251 && b0 <= 254) { |
|
|
0 |
0 |
} else if (b0 >= 251 && b0 <= 254) { |
|
254
|
0 |
0 |
if (*pp >= end) return -1; |
|
256
|
0 |
0 |
} else if (b0 == 28) { |
|
257
|
0 |
0 |
if (*pp + 2 > end) return -1; |
|
260
|
0 |
0 |
} else if (b0 == 29) { |
|
261
|
0 |
0 |
if (*pp + 4 > end) return -1; |
|
309
|
0 |
0 |
if (st->sp < T2_STACK_MAX) { |
|
316
|
0 |
0 |
return (st->sp > 0) ? st->stack[--st->sp] : 0; |
|
324
|
0 |
0 |
if (st->sp < 2) return; |
|
338
|
0 |
0 |
while (st->sp >= 2) { |
|
348
|
0 |
0 |
for (i = 2; i < st->sp; i++) { |
|
358
|
0 |
0 |
while (st->sp >= 6) { |
|
379
|
0 |
0 |
for (i = 6; i < st->sp; i++) { |
|
397
|
0 |
0 |
while (p < end) { |
|
401
|
0 |
0 |
if (op >= 32) { |
|
403
|
0 |
0 |
if (op >= 32 && op <= 246) { |
|
|
0 |
0 |
if (op >= 32 && op <= 246) { |
|
405
|
0 |
0 |
} else if (op >= 247 && op <= 250) { |
|
|
0 |
0 |
} else if (op >= 247 && op <= 250) { |
|
406
|
0 |
0 |
if (p >= end) return -1; |
|
408
|
0 |
0 |
} else if (op >= 251 && op <= 254) { |
|
|
0 |
0 |
} else if (op >= 251 && op <= 254) { |
|
409
|
0 |
0 |
if (p >= end) return -1; |
|
411
|
0 |
0 |
} else if (op == 255) { |
|
412
|
0 |
0 |
if (p + 4 > end) return -1; |
|
417
|
0 |
0 |
} else if (op == 28) { |
|
418
|
0 |
0 |
if (p + 2 > end) return -1; |
|
433
|
0 |
0 |
if (!st->width_parsed && (st->sp & 1)) { |
|
|
0 |
0 |
if (!st->width_parsed && (st->sp & 1)) { |
|
435
|
0 |
0 |
for (i = 1; i < st->sp; i++) { |
|
446
|
0 |
0 |
if (!st->width_parsed && st->sp > 1) { |
|
|
0 |
0 |
if (!st->width_parsed && st->sp > 1) { |
|
463
|
0 |
0 |
while (st->sp > 0) { |
|
466
|
0 |
0 |
if (st->sp > 0) { |
|
474
|
0 |
0 |
while (st->sp > 0) { |
|
477
|
0 |
0 |
if (st->sp > 0) { |
|
489
|
0 |
0 |
if (st->sp < 1 || st->depth >= T2_TRANS_MAX) break; |
|
|
0 |
0 |
if (st->sp < 1 || st->depth >= T2_TRANS_MAX) break; |
|
493
|
0 |
0 |
if (subr) { |
|
505
|
0 |
0 |
if (!st->width_parsed && st->sp > 0) { |
|
|
0 |
0 |
if (!st->width_parsed && st->sp > 0) { |
|
512
|
0 |
0 |
if (!st->width_parsed && (st->sp & 1)) { |
|
|
0 |
0 |
if (!st->width_parsed && (st->sp & 1)) { |
|
524
|
0 |
0 |
if (!st->width_parsed && st->sp > 2) { |
|
|
0 |
0 |
if (!st->width_parsed && st->sp > 2) { |
|
536
|
0 |
0 |
if (!st->width_parsed && st->sp > 1) { |
|
|
0 |
0 |
if (!st->width_parsed && st->sp > 1) { |
|
548
|
0 |
0 |
while (st->sp >= 8) { |
|
555
|
0 |
0 |
while (st->sp >= 8) { |
|
562
|
0 |
0 |
if (st->sp & 1) { |
|
564
|
0 |
0 |
for (i = 1; i < st->sp; i++) { |
|
569
|
0 |
0 |
while (st->sp >= 4) { |
|
586
|
0 |
0 |
for (i = 4; i < st->sp; i++) { |
|
594
|
0 |
0 |
if (st->sp & 1) { |
|
596
|
0 |
0 |
for (i = 1; i < st->sp; i++) { |
|
601
|
0 |
0 |
while (st->sp >= 4) { |
|
618
|
0 |
0 |
for (i = 4; i < st->sp; i++) { |
|
626
|
0 |
0 |
if (st->sp < 1 || st->depth >= T2_TRANS_MAX) break; |
|
|
0 |
0 |
if (st->sp < 1 || st->depth >= T2_TRANS_MAX) break; |
|
630
|
0 |
0 |
if (subr) { |
|
643
|
0 |
0 |
while (st->sp >= 4) { |
|
648
|
0 |
0 |
double d5 = (st->sp == 5) ? st->stack[4] : 0; |
|
652
|
0 |
0 |
if (start_v) { |
|
672
|
0 |
0 |
consumed = (st->sp == 5) ? 5 : 4; |
|
673
|
0 |
0 |
for (i = consumed; i < st->sp; i++) { |
|
683
|
0 |
0 |
if (p >= end) return -1; |
|
703
|
0 |
0 |
if (count < 1240) return 107; |
|
704
|
0 |
0 |
if (count < 33900) return 1131; |
|
730
|
0 |
0 |
if (len < 4) return -1; |
|
738
|
0 |
0 |
if (font->major != 1) return -1; /* Only CFF version 1 */ |
|
745
|
0 |
0 |
if (size < 0) return -1; |
|
750
|
0 |
0 |
if (size < 0) return -1; |
|
755
|
0 |
0 |
if (size < 0) return -1; |
|
760
|
0 |
0 |
if (size < 0) return -1; |
|
766
|
0 |
0 |
if (!dict) return -1; |
|
781
|
0 |
0 |
while (dp < dict_end) { |
|
784
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
786
|
0 |
0 |
if (num_operands < 48) { |
|
787
|
0 |
0 |
if (parse_cff_dict_operand(&dp, dict_end, |
|
796
|
0 |
0 |
if (b == 12 && dp < dict_end) { |
|
|
0 |
0 |
if (b == 12 && dp < dict_end) { |
|
800
|
0 |
0 |
if (b2 == 7 && num_operands >= 6) { |
|
|
0 |
0 |
if (b2 == 7 && num_operands >= 6) { |
|
802
|
0 |
0 |
for (i = 0; i < 6; i++) { |
|
804
|
0 |
0 |
operands[i].val.f : operands[i].val.i; |
|
810
|
0 |
0 |
if (num_operands > 0) { |
|
815
|
0 |
0 |
if (num_operands > 0) { |
|
820
|
0 |
0 |
if (num_operands > 0) { |
|
825
|
0 |
0 |
if (num_operands >= 2) { |
|
837
|
0 |
0 |
if (font->charstrings_offset > 0) { |
|
843
|
0 |
0 |
if (font->private_offset > 0 && font->private_size > 0) { |
|
|
0 |
0 |
if (font->private_offset > 0 && font->private_size > 0) { |
|
848
|
0 |
0 |
while (priv < priv_end) { |
|
851
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
|
0 |
0 |
if (b >= 32 || b == 28 || b == 29 || b == 30) { |
|
852
|
0 |
0 |
if (num_operands < 48) { |
|
859
|
0 |
0 |
if (b == 19 && num_operands > 0) { |
|
|
0 |
0 |
if (b == 19 && num_operands > 0) { |
|
865
|
0 |
0 |
} else if (b == 20 && num_operands > 0) { |
|
|
0 |
0 |
} else if (b == 20 && num_operands > 0) { |
|
868
|
0 |
0 |
} else if (b == 21 && num_operands > 0) { |
|
|
0 |
0 |
} else if (b == 21 && num_operands > 0) { |
|
898
|
0 |
0 |
if (!outline || !cff_data || !arena) { |
|
|
0 |
0 |
if (!outline || !cff_data || !arena) { |
|
|
0 |
0 |
if (!outline || !cff_data || !arena) { |
|
903
|
0 |
0 |
if (parse_cff_font(cff_data, cff_len, &font) < 0) { |
|
908
|
0 |
0 |
if (glyph_id >= font.charstrings_index.count) { |
|
913
|
0 |
0 |
if (!cs) { |
|
919
|
0 |
0 |
if (!path) { |
|
930
|
0 |
0 |
if (t2_execute(&st, cs, cs_len) < 0) { |