Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash on malformed font #35

Closed
alexanderkjall opened this issue Sep 4, 2020 · 2 comments
Closed

Crash on malformed font #35

alexanderkjall opened this issue Sep 4, 2020 · 2 comments

Comments

@alexanderkjall
Copy link

Did some fuzzing of the function fontdue::Font::from_bytes and found this crash:

$ RUST_BACKTRACE=1 ./target/debug/fontdue-crash 
thread 'main' panicked at 'attempt to add with overflow', /home/capitol/.cargo/git/checkouts/fontdue-8bd74c91401c4cc7/dc8670e/src/font.rs:113:28
stack backtrace:
   0: rust_begin_unwind
             at /rustc/397b390cc76ba1d98f80b2a24a371f708dcc9169/library/std/src/panicking.rs:475
   1: core::panicking::panic_fmt
             at /rustc/397b390cc76ba1d98f80b2a24a371f708dcc9169/library/core/src/panicking.rs:85
   2: core::panicking::panic
             at /rustc/397b390cc76ba1d98f80b2a24a371f708dcc9169/library/core/src/panicking.rs:50
   3: fontdue::font::LineMetrics::new
             at /home/capitol/.cargo/git/checkouts/fontdue-8bd74c91401c4cc7/dc8670e/src/font.rs:113
   4: fontdue::font::Font::from_bytes
             at /home/capitol/.cargo/git/checkouts/fontdue-8bd74c91401c4cc7/dc8670e/src/font.rs:280
   5: fontdue_crash::main
             at ./src/main.rs:5
   6: core::ops::function::FnOnce::call_once
             at /home/capitol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227

Can be reproduced with this program:

fn main() {

    let font = vec![0, 1, 0, 0, 0, 250, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 210, 32, 0, 109, 97, 112, 126, 33, 0, 0, 0, 0, 0, 99, 102, 1, 0, 30, 1, 91, 1, 0, 253, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 0, 86, 79, 82, 71, 0, 1, 82, 77, 103, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 35, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 77, 103, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 77, 103, 118, 97, 114, 220, 255, 255, 255, 255, 255, 255, 0, 236, 0, 0, 98, 77, 1, 91, 0, 0, 220, 70, 70, 50, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 97, 114, 120, 0, 0, 0, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 77, 103, 118, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 82, 71, 0, 0, 0, 0, 0, 118, 97, 0, 1, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 250, 184, 102, 118, 97, 114, 115, 98, 105, 120, 0, 0, 0, 0, 0, 0, 0, 4, 61, 6, 82, 77, 220, 45, 103, 79, 41, 114, 117, 250, 184, 102, 118, 97, 114, 115, 98, 105, 120, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 64, 255, 0, 0, 116, 116, 99, 102, 33, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 17, 0, 0, 0, 6, 0, 72, 0, 0, 0, 1, 0, 0, 210, 5, 0, 0, 0, 0, 0, 0, 0, 255, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 109, 97, 98, 105, 120, 0, 0, 0, 0, 0, 0, 0, 4, 61, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 117, 210, 0, 0, 33, 93, 112, 126, 33, 0, 0, 0, 0, 103, 118, 97, 114, 220, 70, 70, 55, 0, 0, 0, 0, 0, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 0, 0, 0, 109, 97, 112, 126, 33, 0, 0, 0, 0, 0, 99, 102, 1, 0, 30, 1, 91, 1, 0, 253, 0, 210, 58, 117, 210, 0, 0, 109, 97, 112, 126, 33, 0, 0, 255, 0, 0, 0, 99, 102, 1, 0, 30, 1, 91, 1, 0, 253, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 255, 101, 210, 210, 58, 117, 210, 32, 0, 255, 255, 255, 109, 255, 255, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 253, 0, 109, 97, 120, 112, 0, 1, 0, 253, 0, 0, 0, 0, 0, 0, 0, 64, 255, 70, 51, 0, 0, 0, 0, 0, 0, 0, 116, 116, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 97, 120, 112, 0, 1, 0, 58, 117, 0, 0, 205, 0, 0, 1, 0, 0, 253, 0, 0, 0, 0, 0, 0, 0, 64, 255, 255, 210, 1, 255, 255, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 17, 17, 17, 0, 67, 70, 70, 50, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 27, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 3, 72, 0, 0, 0, 0, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 77, 103, 118, 97, 114, 220, 255, 255, 255, 255, 255, 255, 0, 236, 0, 0, 98, 77, 103, 118, 97, 77, 65, 0, 0, 1, 0, 0, 0, 1, 174, 178, 35, 0, 45, 79, 104, 104, 101, 97, 169, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 36, 120, 169, 0, 1, 0, 0, 0, 0, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 0, 1, 0, 0, 0, 27, 0, 1, 0, 0, 1, 0, 255, 255, 255, 255, 148, 0, 0, 0, 0, 0, 118, 97, 1, 1, 0, 0, 4, 61, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 210, 32, 0, 109, 97, 112, 126, 33, 0, 0, 0, 0, 16, 99, 0, 1, 30, 1, 102, 91, 1, 0, 253, 0, 86, 79, 210, 71, 0, 1, 103, 77, 82, 118, 97, 114, 220, 70, 70, 56, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 0, 97, 118, 0, 0, 1, 16, 0, 1, 82, 77, 0, 190, 250, 184, 105, 118, 97, 114, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 1, 0, 0, 0, 242, 72, 77, 65, 82, 77, 0, 190, 255, 255, 255, 4, 148, 0, 0, 0, 0, 0, 97, 118, 0, 0, 250, 184, 102, 118, 97, 114, 115, 184, 98, 255, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 70, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 1, 6, 0, 67, 70, 70, 0, 0, 118, 97, 114, 0, 116, 116, 99, 102, 33, 1, 0, 1, 0, 0, 0, 27, 0, 0, 0, 0, 0, 3, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 0, 0, 0, 67, 70, 70, 0, 0, 116, 116, 118, 97, 1, 148, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 1, 0, 0, 0, 242, 72, 77, 65, 82, 77, 0, 190, 250, 184, 102, 118, 97, 114, 115, 184, 98, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 70, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 1, 6, 0, 67, 70, 70, 0, 0, 118, 97, 114, 0, 116, 116, 99, 102, 33, 1, 0, 1, 0, 0, 0, 27, 0, 0, 0, 0, 0, 3, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 0, 0, 0, 67, 70, 70, 0, 0, 116, 116, 118, 97, 1, 0, 0, 0, 1, 209, 77, 0, 190, 0, 1, 0, 0, 0, 1, 0, 0, 220, 104, 101, 97, 100, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 54, 110, 137, 0, 1, 12, 255, 255, 255, 255, 255, 255, 199, 107, 101, 114, 58, 27, 0, 1, 0, 0, 67, 70, 70, 0, 0, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 255, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 97, 114, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 193, 17, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 70, 0, 0, 116, 116, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 28, 28, 114, 220, 70, 70, 51, 0, 0, 0, 0, 35, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 77, 103, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 77, 103, 118, 97, 114, 220, 255, 255, 255, 255, 255, 255, 0, 236, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 27, 0, 1, 255, 71, 86, 255, 255, 255, 148, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 103, 72, 77, 65, 0, 0, 1, 0, 0, 0, 1, 174, 178, 35, 0, 45, 79, 104, 104, 101, 97, 169, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 36, 120, 169, 0, 1, 0, 0, 0, 0, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 0, 1, 0, 0, 0, 27, 0, 1, 0, 0, 1, 0, 255, 255, 255, 255, 148, 0, 0, 0, 0, 0, 118, 97, 1, 1, 0, 0, 4, 61, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 210, 32, 0, 109, 97, 112, 126, 33, 0, 0, 0, 0, 16, 99, 0, 1, 30, 1, 102, 91, 1, 0, 253, 0, 86, 79, 210, 71, 0, 1, 103, 77, 82, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 0, 97, 118, 0, 0, 1, 16, 0, 1, 82, 77, 0, 190, 250, 184, 105, 118, 97, 114, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 1, 0, 0, 0, 242, 72, 77, 65, 82, 77, 0, 190, 250, 184, 102, 118, 97, 114, 115, 184, 98, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 70, 50, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 1, 6, 0, 67, 70, 70, 0, 0, 118, 97, 114, 0, 116, 116, 99, 102, 33, 1, 0, 1, 0, 0, 0, 27, 0, 0, 0, 0, 0, 3, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 0, 0, 0, 67, 70, 70, 0, 0, 116, 116, 118, 97, 1, 0, 0, 0, 1, 209, 77, 0, 190, 0, 1, 0, 0, 0, 1, 0, 0, 220, 104, 101, 97, 100, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 54, 110, 137, 0, 1, 12, 255, 255, 255, 255, 255, 255, 199, 107, 101, 114, 58, 27, 0, 1, 0, 0, 67, 70, 70, 0, 0, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 255, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 97, 114, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 193, 17, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 70, 0, 0, 116, 116, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 5, 64, 24, 12, 12, 12, 12, 12, 12, 12, 99, 102, 1, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 0, 0, 30, 1, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 1, 0, 0, 0, 0, 1, 209, 77, 0, 190, 0, 1, 0, 0, 0, 1, 0, 0, 220, 104, 101, 97, 100, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 54, 110, 137, 0, 1, 12, 255, 255, 255, 255, 255, 255, 199, 107, 101, 114, 58, 27, 0, 1, 0, 0, 67, 70, 70, 0, 0, 255, 15, 245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 1, 0, 0, 1, 0, 255, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 97, 114, 115, 98, 105, 136, 0, 255, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 70, 0, 0, 116, 116, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 28, 28, 114, 220, 70, 70, 51, 0, 0, 0, 0, 35, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 77, 103, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 77, 103, 118, 97, 114, 220, 255, 255, 255, 255, 255, 255, 0, 236, 0, 0, 116, 116, 99, 102, 33, 1, 125, 0, 0, 103, 118, 97, 114, 120, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 27, 0, 1, 255, 71, 86, 255, 255, 255, 148, 255, 65, 0, 0, 0, 0, 0, 118, 97, 1, 1, 0, 0, 4, 61, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 103, 72, 77, 65, 0, 0, 1, 0, 0, 0, 1, 174, 178, 35, 0, 45, 79, 104, 104, 101, 97, 169, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 36, 120, 169, 0, 1, 0, 0, 0, 0, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 0, 1, 0, 0, 0, 27, 0, 1, 0, 0, 1, 0, 255, 255, 255, 255, 148, 0, 0, 0, 0, 0, 118, 97, 1, 1, 0, 0, 4, 61, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 0, 1, 99, 109, 97, 112, 126, 33, 0, 0, 0, 0, 8, 0, 0, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 101, 210, 210, 58, 117, 210, 32, 0, 109, 97, 112, 126, 33, 0, 0, 0, 0, 16, 99, 0, 1, 30, 1, 102, 91, 1, 0, 253, 0, 86, 79, 210, 71, 0, 1, 103, 77, 82, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 0, 97, 118, 0, 0, 1, 16, 0, 1, 82, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 0, 0, 27, 0, 2, 251, 0, 1, 0, 255, 255, 255, 4, 148, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 1, 0, 0, 0, 242, 72, 77, 65, 82, 77, 0, 190, 250, 184, 102, 118, 97, 114, 115, 184, 98, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 67, 70, 70, 50, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 1, 6, 0, 67, 70, 70, 0, 0, 118, 97, 114, 0, 116, 116, 99, 102, 33, 1, 0, 1, 0, 0, 0, 27, 0, 0, 0, 0, 0, 3, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 17, 0, 5, 64, 8, 38, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 77, 0, 190, 58, 27, 0, 0, 0, 0, 67, 70, 70, 0, 0, 116, 116, 118, 97, 1, 0, 0, 0, 1, 209, 77, 0, 190, 0, 1, 0, 0, 0, 1, 2, 0, 36, 151, 154, 158, 155, 255, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 54, 110, 137, 0, 1, 12, 255, 255, 255, 255, 255, 255, 199, 107, 101, 114, 58, 27, 0, 1, 0, 0, 67, 70, 70, 0, 0, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 255, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 82, 97, 114, 115, 98, 105, 136, 0, 255, 66, 66, 76, 0, 193, 17, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 70, 0, 0, 116, 116, 118, 97, 114, 220, 70, 70, 51, 0, 0, 0, 0, 0, 0, 1, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 5, 64, 24, 12, 12, 12, 12, 12, 12, 12, 99, 102, 1, 0, 30, 1, 91, 1, 0, 253, 0, 86, 79, 82, 71, 0, 1, 82, 0, 0, 30, 1, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 205, 0, 0, 1, 0, 0, 210, 1, 0, 0, 255, 255, 255, 199, 107, 101, 114, 110, 82, 1, 63, 169, 173];

    if let Ok(font) = fontdue::Font::from_bytes(font, fontdue::FontSettings::default()) {
        let (metrics, bitmap) = font.rasterize('g', 17.0);
    }
    println!("Hello, world!");
}
@mooman219
Copy link
Owner

Thanks! I'm sure that's an incredibly malformed font, but I'll fix font load to produce a meaningful error and not panic.

@mooman219
Copy link
Owner

Fixed

@mooman219 mooman219 reopened this Sep 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants