Rust Coreutils-dən cp alətinin Ubuntu-ya qaytarılması livecd-rootfs-in yığılmasında səhvə səbəb oldu

Ubuntu inkişaf etdiriciləri Rust Coreutils-dən cp utilitinin icrasında uyğunsuzluq aşkarlandıqdan sonra GNU Coreutils dəstindən cp utilitinin variantını geri qaytardılar ki, bu da Live-şəkillərin (livecd-rootfs) yığılmasında xətaya səbəb oldu.

Ubuntu 24.04 buraxılışında aşkar edilmiş zəifliklər səbəbindən GNU Coreutils-dən cp, mv və rm utilitləri geri qaytarıldı, amma coreutils-from-uutils 0.0.0~ubuntu26 paketinin yeniləməsində Rust Coreutils dəstindən olan utilitlərin istifadəsi bərpa edildi. Problem, cp utilitinin «-afL» seçimləri ilə çağırılması ilə bağlı oldu, bu seçimlər GNU Coreutils-də normal işləyirdi, lakin Rust Coreutils-də «cp: -r not specified; omitting directory » xətası ilə nəticələndi.

Xəta, «-L» və «-a» arasında bir-biri ilə münaqişədə olan seçimlərin emalında fərqli davranışdan irəli gəldi. «-L» seçimi simvolik bağlantıların de-referencing edilməsini tələb edir, eyni zamanda «-a» seçimdən ibarət olan tərkibdəki seçim isə «-dR —preserve=all» olub, «-d» seçimini əhatə edir ki, bu da simvolik bağlantıların de-referencing edilməsini qadağan edir. Rust Coreutils-də tərkibdəki «-a» tamamilə atıldı, yerinə isə münaqişəli «-d» seçiminin silinməsi lazım idi, bu da «-R» seçiminin itirilməsinə və rekurziv direktoriyaların kopyalanması üçün lazım olan «—preserve=all» seçiminin itkisinə səbəb oldu.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster