A bug lurking for 12 years gives attackers root on every major Linux distro https://arstechnica.com/information-technology/2022/01/a-bug-lurking-for-12-years-gives-attackers-root-on-every-major-linux-distro/?utm_brand=arstechnica&utm_source=twitter&utm_social-type=owned&utm_medium=social… by @dangoodin001
(Yes, I know m1n1 is written in C and will probably grow an attack surface once we support signed self-chainloads and I'm not terribly happy about that; wonder if I should try fuzzing FatFs...)
(The good news is the attack surface is fairly self contained, so replacing the FAT+sigcheck implementation with a Rust one some day is certainly in the cards and ~nothing else really matters there.)
My problem with Rust is when I first tried it I got something ~simple working on it reasonably easily, and then I tried to architect something serious and failed miserably when I ran into how to make a certain API model interact with ownership. Probably jumped the gun...
If you can't figure out how to map a complex ownership owner model to unique ownership with borrows or reference counting there's always the option to use a collection. Instead of using pointers put the graph of objects in an array or map and use indexing to get to the nodes.