Programiści Ubuntu przywrócili wersję narzędzia cp z zestawu GNU Coreutils po odkryciu niezgodności w implementacji cp z Rust Coreutils, przez co skrypt do budowy obrazów Live (livecd-rootfs) kończył się błędem.
W wydaniu Ubuntu 24.04, z powodu wykrytych luk w zabezpieczeniach, przywrócono narzędzia cp, mv i rm z GNU Coreutils, jednak w aktualizacji pakietu coreutils-from-uutils 0.0.0~ubuntu26 wznowiono użycie narzędzi z zestawu Rust Coreutils. Problem wystąpił w skrypcie budowy, gdy narzędzie cp zostało wywołane z opcjami „-afL”, które były prawidłowo obsługiwane w GNU Coreutils, ale w Rust Coreutils skutkowały błędem „cp: -r not specified; omitting directory ”.
Błąd wynikał z odmiennego zachowania przy przetwarzaniu konfliktujących opcji „-L” i „-a”. Opcja „-L” nakazuje dereferencję linków symbolicznych, podczas gdy złożona opcja „-a”, która może być zastąpiona przez „-dR --preserve=all”, zawiera opcję „-d”, która zabrania dereferencji linków symbolicznych. W Rust Coreutils złożona opcja „-a” była całkowicie odrzucana, zamiast usunięcia jedynie konfliktującego flagi „-d”, co prowadziło do zniknięcia flagi „-R”, niezbędnej do rekurencyjnego kopiowania katalogów, a także flagi „--preserve=all”, używanej do zachowania wcześniejszych atrybutów w kopii.
Źródło: opennet.ru
