<div id="origbody"><div id="origbody"><div style="box-sizing: border-box; line-height: 1.42857; margin-right: 0px; margin-bottom: 16px; margin-left: 0px; color: rgb(46, 64, 94); font-family: Roboto, "PingFang SC", "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px;">when we do poppler fuzzer fusiontest-testcase-pdf_draw_fuzzer-202110250014£¬we find cairo have <span style="color: rgb(64, 72, 91); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Liberation Sans", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, SimSun, "WenQuanYi Zen Hei Sharp", sans-serif;">heap buffer overflow</span>, and we put  bugfix-fix-heap-buffer-overflow-in-cairo_cff_parse_charstring.patch, and i think there need optimize of the patch.</div><div style="box-sizing: border-box; line-height: 1.42857; margin-right: 0px; margin-bottom: 16px; margin-left: 0px; color: rgb(46, 64, 94); font-family: Roboto, "PingFang SC", "Noto Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px;"><p style="box-sizing: border-box; margin-right: 0em; margin-bottom: 16px; margin-left: 0em; line-height: 1.6; word-break: break-word; color: rgb(64, 72, 91); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Liberation Sans", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, SimSun, "WenQuanYi Zen Hei Sharp", sans-serif;">==445389==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x625000015a05 at pc 0x0000012d17a5 bp 0x7ffe4b558d70 sp 0x7ffe4b558d68<br style="box-sizing: border-box;">READ of size 1 at 0x625000015a05 thread T0<br style="box-sizing: border-box;">#0 0x12d17a4 in cairo_cff_parse_charstring /src/cairo/_builddir/../src/cairo-cff-subset.c:1519:13<br style="box-sizing: border-box;">#1 0x12d0d00 in cairo_cff_parse_charstring /src/cairo/_builddir/../src/cairo-cff-subset.c<br style="box-sizing: border-box;">#2 0x12cf6e2 in cairo_cff_find_width_and_subroutines_used /src/cairo/_builddir/../src/cairo-cff-subset.c:1689:14<br style="box-sizing: border-box;">#3 0x12cd480 in cairo_cff_font_subset_charstrings_and_subroutines /src/cairo/_builddir/../src/cairo-cff-subset.c:1806:15<br style="box-sizing: border-box;">#4 0x12c87eb in cairo_cff_font_subset_font /src/cairo/_builddir/../src/cairo-cff-subset.c:1987:14<br style="box-sizing: border-box;">#5 0x12c395e in cairo_cff_font_generate /src/cairo/_builddir/../src/cairo-cff-subset.c:2600:14<br style="box-sizing: border-box;">#6 0x12c284a in _cairo_cff_subset_init /src/cairo/_builddir/../src/cairo-cff-subset.c:2977:14<br style="box-sizing: border-box;">#7 0x11f79dc in _cairo_pdf_surface_emit_cff_font_subset /src/cairo/_builddir/../src/cairo-pdf-surface.c:5939:14<br style="box-sizing: border-box;">#8 0x11f7222 in _cairo_pdf_surface_emit_unscaled_font_subset /src/cairo/_builddir/../src/cairo-pdf-surface.c:6654:14<br style="box-sizing: border-box;">#9 0x12dcae4 in _cairo_sub_font_collect /src/cairo/_builddir/../src/cairo-scaled-font-subsets.c:742:30<br style="box-sizing: border-box;">#10 0x12d972a in _cairo_scaled_font_subsets_foreach_internal /src/cairo/_builddir/../src/cairo-scaled-font-subsets.c:1064:6<br style="box-sizing: border-box;">#11 0x12d9a42 in _cairo_scaled_font_subsets_foreach_unscaled /src/cairo/_builddir/../src/cairo-scaled-font-subsets.c:1092:12<br style="box-sizing: border-box;">#12 0x11e00a0 in _cairo_pdf_surface_emit_font_subsets /src/cairo/_builddir/../src/cairo-pdf-surface.c:6704:14<br style="box-sizing: border-box;">#13 0x11da865 in _cairo_pdf_surface_finish /src/cairo/_builddir/../src/cairo-pdf-surface.c:2486:11<br style="box-sizing: border-box;">#14 0x11a8568 in _cairo_surface_finish /src/cairo/_builddir/../src/cairo-surface.c:1030:11<br style="box-sizing: border-box;">#15 0x11a77b9 in cairo_surface_finish /src/cairo/_builddir/../src/cairo-surface.c:1079:5<br style="box-sizing: border-box;">#16 0x126d132 in _cairo_paginated_surface_finish /src/cairo/_builddir/../src/cairo-paginated-surface.c:214:2<br style="box-sizing: border-box;">#17 0x11a8568 in _cairo_surface_finish /src/cairo/_builddir/../src/cairo-surface.c:1030:11<br style="box-sizing: border-box;">#18 0x11a5245 in cairo_surface_destroy /src/cairo/_builddir/../src/cairo-surface.c:970:2<br style="box-sizing: border-box;">#19 0x6a3436 in LLVMFuzzerTestOneInput /src/poppler/glib/tests/fuzzing/pdf_draw_fuzzer.cc:70:5<br style="box-sizing: border-box;">#20 0x5a91d3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:599:15<br style="box-sizing: border-box;">#21 0x594942 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:323:6<br style="box-sizing: border-box;">#22 0x59a5e6 in fuzzer::FuzzerDriver(int*, char***, int (<em style="box-sizing: border-box;">)(unsigned char const</em>, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:856:9<br style="box-sizing: border-box;">#23 0x5c3af2 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10<br style="box-sizing: border-box;">#24 0x7f7c9849db26 in __libc_start_main (/lib64/libc.so.6+0x25b26)<br style="box-sizing: border-box;">#25 0x5707f9 in _start (/root/oss-fuzz/build/out/poppler/pdf_draw_fuzzer+0x5707f9)</p><p style="box-sizing: border-box; margin-right: 0em; margin-left: 0em; line-height: 1.6; word-break: break-word; color: rgb(64, 72, 91); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Liberation Sans", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, SimSun, "WenQuanYi Zen Hei Sharp", sans-serif;">Address 0x625000015a05 is a wild pointer.<br style="box-sizing: border-box;">SUMMARY: AddressSanitizer: heap-buffer-overflow /src/cairo/_builddir/../src/cairo-cff-subset.c:1519:13 in cairo_cff_parse_charstring<br style="box-sizing: border-box;">Shadow bytes around the buggy address:<br style="box-sizing: border-box;">0x0c4a7fffaaf0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">=>0x0c4a7fffab40:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">0x0c4a7fffab90: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa<br style="box-sizing: border-box;">Shadow byte legend (one shadow byte represents 8 application bytes):<br style="box-sizing: border-box;">Addressable: 00<br style="box-sizing: border-box;">Partially addressable: 01 02 03 04 05 06 07<br style="box-sizing: border-box;">Heap left redzone: fa<br style="box-sizing: border-box;">Freed heap region: fd<br style="box-sizing: border-box;">Stack left redzone: f1<br style="box-sizing: border-box;">Stack mid redzone: f2<br style="box-sizing: border-box;">Stack right redzone: f3<br style="box-sizing: border-box;">Stack after return: f5<br style="box-sizing: border-box;">Stack use after scope: f8<br style="box-sizing: border-box;">Global redzone: f9<br style="box-sizing: border-box;">Global init order: f6<br style="box-sizing: border-box;">Poisoned by user: f7<br style="box-sizing: border-box;">Container overflow: fc<br style="box-sizing: border-box;">Array cookie: ac<br style="box-sizing: border-box;">Intra object redzone: bb<br style="box-sizing: border-box;">ASan internal: fe<br style="box-sizing: border-box;">Left alloca redzone: ca<br style="box-sizing: border-box;">Right alloca redzone: cb<br style="box-sizing: border-box;">Shadow gap: cc<br style="box-sizing: border-box;">==445389==ABORTING</p><p style="box-sizing: border-box; margin-right: 0em; margin-left: 0em; line-height: 1.6; word-break: break-word; color: rgb(64, 72, 91); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Liberation Sans", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Wenquanyi Micro Hei", "WenQuanYi Zen Hei", "ST Heiti", SimHei, SimSun, "WenQuanYi Zen Hei Sharp", sans-serif;"></p><div><br></div><div><br></div><p></p></div></div></div>