wg icon indicating copy to clipboard operation
wg copied to clipboard

Item shadowing

Open burdges opened this issue 5 years ago • 3 comments

Are we concerned about item shadowing? Do we want lints that forbid shadowing?

At a technical level, item shadowing might not create so many new threats per se, but they simplify innocent looking bug doors.

It remains unclear to me if https://github.com/rust-lang/rfcs/pull/2845 makes the item shadowing situation better or worse.

burdges avatar Jun 15 '20 09:06 burdges

Item shadowing is a double-edged sword. Intentional use for removing variables you don't want to use accidentally is great. On the other hand, accidental shadowing may cause issues.

I don't recall any RustSec advisories for issues caused by shadowing, for what it's worth. Neither do I recall any in the fuzzing trophy case, but I can't remember all of those for sure.

IIRC there is a clippy lint that makes any kind of shadowing a warning.

Shnatsel avatar Jun 15 '20 22:06 Shnatsel

I usually use shadowing when I get something like Result<Option<T>> and I actually want a T. There used to be an underhanded-rust contest going on, maybe it's time to do another round. :)

kpcyrd avatar Jun 16 '20 01:06 kpcyrd

I'd think such attacks live only in NPM land still, but we've so much large crypto-currency software being written in rust that bug door attacks using shadowing sound plausible eventually.

IIRC there is a clippy lint that makes any kind of shadowing a warning.

Any? We do not care about local variable shadowing, only cross-crate method shadowing. We can close this issue if clippy can do methods only. We've some cargo tool to run clippy on dependencies?

burdges avatar Jun 16 '20 02:06 burdges