Odpovídáte na názor k článku Rust v jádře má první zranitelnost. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.
Troufám si tvrdit, že neblábolím, jen se snažím věci uvádět na pravou míru :) Netvrdím, že v Rustu nemůže být UB, pokud se použije unsafe, tak tam samozřejmě UB být může. To důležité není, že bug v unsafe kódu může způsobit UB, to je jasné, ale že bug v safe části (opakuji v safe části, ne nic co používá unsafe blok) NEMŮŽE způsobit UB, to je ta celá pointa.
Rozumím poznámce, že oprava byla v safe části, ale to nic nemění na tom, kde byl ten bug. Když je bug na místě A, tak ho můžu opravit na místě A, nebo ho můžu opravit i tak, že změním místo B, a tím mi zmízí bug z místa A. To nic nemění na tom, že abych našel, co *způsobuje* UB, tak k tomu může dojít pouze v unsafe částech kódu. Tady opravdu k bugu došlo v unsafe části kódu, což je to, co jsem tvrdil, i když ten problém, co způsoboval rozbití invariantu, byl jinde v kódu, a byl v safe kódu, ale to není až tak extra důležité.
Taky bych řekl, že vlastně tímhle fixem nic moc neopravili. Stejný bug může kdykoliv vzniknout v budoucnu, pokud jinde v kódu budou zase něco dělat paralelně nad tou datovou strukturou. Ideálně by to API mělo být navržené tak, aby tam tenhle unsafe blok být nemusel, a aby to nešlo použít špatně. Ne vždycky to jde - tohle možná bude jeden případ, kdy to nejde, a v tu chvíli tam budou vznikat další a další zranitelnosti i v budoucnu, dokud někdo neudělá lepší API, a tím pádem tenhle konkrétní kus kódu nebude v bezpečnosti o moc lepší, než C nebo C++. Na tom nic nepopírám :)