ur0 / lolcat

lolcat, now with fearless concurrency.
MIT License
99 stars 14 forks source link

panicks when streaming ascii star wars #29

Open lauwaichung opened 10 months ago

lauwaichung commented 10 months ago

{ sleep 1 ; echo starwars ; sleep 99999 ;} | nc -c telehack.com 23 | RUST_BACKTRACE=full lolcat

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Kind(InvalidData)', /Users/michael1/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lolcat-1.5.0/src/main.rs:24:60
stack backtrace:
   0:        0x109decd73 - std::backtrace_rs::backtrace::libunwind::trace::h211824fb0870b7d7
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:        0x109decd73 - std::backtrace_rs::backtrace::trace_unsynchronized::h0e69993850353c73
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:        0x109decd73 - std::sys_common::backtrace::_print_fmt::hee91bd3b61c5fec7
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:65:5
   3:        0x109decd73 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h9b8c7d4986eea143
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:44:22
   4:        0x109e06c3b - core::fmt::rt::Argument::fmt::hea92c31b43c9e564
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/fmt/rt.rs:138:9
   5:        0x109e06c3b - core::fmt::write::h745c6d87d2702197
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/fmt/mod.rs:1094:21
   6:        0x109dea28e - std::io::Write::write_fmt::h9bc75e1a1578f329
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/io/mod.rs:1714:15
   7:        0x109decb6a - std::sys_common::backtrace::_print::h98bb00e155d79a89
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:47:5
   8:        0x109decb6a - std::sys_common::backtrace::print::hb5816525719dec2d
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:34:9
   9:        0x109dedf35 - std::panicking::default_hook::{{closure}}::hfc88b82ae9ab0222
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:269:22
  10:        0x109dedcdf - std::panicking::default_hook::h2cb72824a505d11d
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:288:9
  11:        0x109dee490 - std::panicking::rust_panic_with_hook::hc7199b95a24a631d
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:705:13
  12:        0x109dee3b3 - std::panicking::begin_panic_handler::{{closure}}::h29c0dd87214757f4
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:597:13
  13:        0x109ded179 - std::sys_common::backtrace::__rust_end_short_backtrace::hd299ff4177db45a7
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:151:18
  14:        0x109dee0ed - rust_begin_unwind
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:593:5
  15:        0x109e10433 - core::panicking::panic_fmt::h8b25e6b7bc9d8aa4
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/panicking.rs:67:14
  16:        0x109e107e5 - core::result::unwrap_failed::h3575be054108b8be
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/result.rs:1651:5
  17:        0x109d75082 - lolcat::cat::print_chars_lol::h020bb8e4a14de7a5
  18:        0x109d776be - lolcat::main::hb84b2e210e3827df
  19:        0x109d7b7c6 - std::sys_common::backtrace::__rust_begin_short_backtrace::h89b72f6f6c527f26
  20:        0x109d7b7dc - std::rt::lang_start::{{closure}}::h44df6f286e049f18
  21:        0x109de677a - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h136184a71f015bca
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/ops/function.rs:284:13
  22:        0x109de677a - std::panicking::try::do_call::h2e2637ab353d5609
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:500:40
  23:        0x109de677a - std::panicking::try::hab157366490bbca8
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:464:19
  24:        0x109de677a - std::panic::catch_unwind::h65a1f3af6151de00
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panic.rs:142:14
  25:        0x109de677a - std::rt::lang_start_internal::{{closure}}::h34628e201aebaa71
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/rt.rs:148:48
  26:        0x109de677a - std::panicking::try::do_call::hb94abc6ad51b64cb
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:500:40
  27:        0x109de677a - std::panicking::try::h8e012c727c1c58c7
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:464:19
  28:        0x109de677a - std::panic::catch_unwind::h4d612bb9078ec854
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panic.rs:142:14
  29:        0x109de677a - std::rt::lang_start_internal::h4f6dde0e5153fc54
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/rt.rs:148:20
  30:        0x109d787dc - _main
  31:     0x7ff803800310 - <unknown>
magnus-ISU commented 10 months ago

This happens when you feed non-unicode data to lolcat.

I'll take a look at the output of starwars and see if it's something we can easily fix