rust-secure-code / safety-dance

Auditing crates for unsafe code which can be safely replaced

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Audit gif

Shnatsel opened this issue · comments

https://crates.io/crates/gif

Pure-Rust GIF decoder, used in image and everything that relies on it. 2000 downloads/day. High risk due to parsing untrusted data in a binary format.

The C API is where most of the unsafety lies. It is currently highly experimental and can be ignored. However, it looks like the core library could be made 100% safe.

I've started purging unsafe code, but I will not be able to finish the job. Done so far:
image-rs/image-gif#61
image-rs/image-gif#63

The 2 remaining unsafe blocks actually pass Polonius checks, see https://github.com/danielhenrymantilla/image-gif/tree/polonius-fix

So I'm considering them audited and assume that 100% safety is blocked until Polonius.

Tracking issue on rustc side: rust-lang/rust#51545