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

UTF-16 decoder can panic on invalid input #44

Closed
vickenty opened this issue Nov 30, 2019 · 3 comments
Closed

UTF-16 decoder can panic on invalid input #44

vickenty opened this issue Nov 30, 2019 · 3 comments

Comments

@vickenty
Copy link

This program panics (playground):

use encoding_rs::CoderResult;

fn main() {
    let d = &mut encoding_rs::UTF_16BE.new_decoder_without_bom_handling();
    let b = &mut [0; 4];

    assert_eq!(
        d.decode_to_utf8(&[217, 99], b, false),
        (CoderResult::InputEmpty, 2, 0, false)
    );
    
    let _ = d.decode_to_utf8(&[217, 99], b, true);
}
thread 'main' panicked at 'index out of bounds: the len is 4 but the index is 4', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/encoding_rs-0.8.20/src/lib.rs:3884:21

This is a minimized example of a bug found by a fuzzer in another crate. Let me know if you want full details.

@hsivonen
Copy link
Owner

hsivonen commented Dec 5, 2019

Thank you for the report. I've noticed this report, but I been super-busy this week. I will get to this.

@hsivonen
Copy link
Owner

Thank you. Fixed. I'll look at another report before pushing a new release.

@hsivonen
Copy link
Owner

The other bug needs more investigation. This fix is now in 0.8.21 on crates.io.

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