I don't get why this is noteworthy? It's literally a piece of code in a Rust "unsafe" block. If you put something in an "unsafe" block the compiler isn't going to help you, you are on your own. That's why it's called "unsafe".
Now what is kinda interesting is that instead of getting rid of the "unsafe" block the developers put in some extra check. I guess you can take the developer out of C but you can't take the C out of the developer?
> Now what is kinda interesting is that instead of getting rid of the "unsafe" block the developers put in some extra check. I guess you can take the developer out of C but you can't take the C out of the developer?
The patch devs said that they're interested in larger-scale changes to get rid of the need for `unsafe` in this kind of situation, but since that'll take time it's more important to just fix the bug for now.
The mistake there is a classical example of why (software) transactional memory is valuable. Double linked lists are trivial in single core execution, need PhD level understanding of everything in multicore execution and become trivial again in multicore execution with (S)TM.
Rust has troubles with STM because it lacks anything resembling effect system. Most probably, this will not be fixed.
Page 13 discuss why imperative approach like Rust's may fail in delivering transactional memory and why arbitrary-side-effect-free transactions in Haskell are, in fact, very composable due to effects separation inside STM and IO monads.
I hate this bot-detection anime girl popping up on my monitor while I pretend to be working. Same goes for the funny pictures at the beginning of some Github readmes. Sorry for complaining about a tangential annoyance, but I haven't seen this particular sentiment expressed yet.
Technically, binder is still part of Linux, even if it's not enabled by default in many cases.
This "security vulnerability" is just a local DoS though. Annoying and problematic as it effectively bypasses controls over power on/off behaviour, but as far as I can tell from this report, no memory is leaked and no code execution can be achieved.
It's UB, it is not memory safe, so in theory, and often also in practice with this specific kind of bug, absolutely anything could happen, including code execution.
Greg Kroah-Hartman's comment is both wrong and perplexing.
Now what is kinda interesting is that instead of getting rid of the "unsafe" block the developers put in some extra check. I guess you can take the developer out of C but you can't take the C out of the developer?
reply