Vývojáři Ubuntu Vrátili jsme se k verzi utility cp pro GNU Coreutils poté, co jsme zjistili nekompatibilitu v implementaci utility cp pro Rust Coreutils, která způsobovala selhání skriptu pro sestavení živého obrazu (livecd-rootfs).
Ve vydání Ubuntu Dne 24.04 byly z důvodu objevených zranitelností vráceny utility cp, mv a rm z GNU Coreutils, ale v aktualizaci balíčku coreutils-from-uutils 0.0.0~ubuntuVerze 26 byla obnovena, používání utilit ze sady Rust Coreutils. Problém vznikl kvůli volání utility cp v build skriptu s volbami „-afL“, které se v GNU Coreutils zpracovávaly normálně, ale v Rust Coreutils to vedlo k chybě „cp: -r not specified; omitting directory“ (cp: -r not specified; omitting directory) ".
K chybě došlo kvůli odlišnému chování při zpracování konfliktních voleb „-L“ a „-a“. Volba „-L“ vynucuje dereferencování symbolických odkazů, zatímco složená volba „-a“, která je nahrazena volbou „-dR --preserve=all“, obsahuje volbu „-d“, která dereferencování symbolických odkazů zakazuje. V Rust Coreutils byla složená volba „-a“ zcela zrušena, místo aby byl samostatně odstraněn konfliktní příznak „-d“. To vedlo k zmizení příznaku „-R“, který je vyžadován pro rekurzivní kopírování adresářů, a také příznaku „--preserve=all“, který se používá k zachování předchozích atributů v kopii.
Zdroj: opennet.ru
