[devel] sisyphus APT considered one more time

Ivan Zakharyaschev imz на altlinux.org
Пт Фев 14 21:59:09 MSK 2020


Hello!

Могу предложить в сыром виде посмотреть такое представление изменений,
соответствующих ветке sisyphus_one_more_time в
http://git.altlinux.org/people/darktemplar/packages/apt.git , которое
у меня получилось.

(У меня в ветке one_more_time в
http://git.altlinux.org/people/darktemplar/packages/apt.git .)

По смыслу должно то же самое получится в итоге. (Посравниваю
git diff -w darktemplar на ALT/sisyphus_one_more_time..imz на ALT/one_more_time ).
Кое-что ещё из тех переделок этих изменений, что ещё раньше здесь обсуждалось,
я бы внёс сразу, но пока не добрался.)

Отделял отдельные изменения для лучшего восприятия, ну и прочее;
поправил что-то не очень хорошее.

Возникавшие вопросы-замечания уж не буду писать, я их все как-нибудь
для себя решил и внёс изменения. Можно увидеть в конкретных коммитах.

Менять типы на 32-битный map_ptrloc (упоминавшийся вчера) пока не
увидел смысла: в частности не вижу, чтобы как-то чисто обрабатывались
переполнения ни в старом коде, ни с map_ptrloc, и не очень хочется
одну грязь на другую менять. (Однако, на практике такие размеры графа
пакетов не ожидаются, конечно -- чтобы вылезло за 32-битные смещения).
(Впрочем, на эту тему ещё заметил, что параметры на размер области из
конфигурации могут быть прочитаны только типа int функцией FindI();
правда, область может разрастаться и стать больше.)

$ git log --oneline --reverse 0.5.15lorg2-alt69..one_more_time
ff29a765b .dir-locals.el: apply our Emacs mode settings to .h files, too
138d903a6 dynamic memory management: Fix off by one error in mmap(...)/munmap(...) leading to resource leak
1695ed045 DynamicMMap::DynamicMMap(): avoid damage to the last byte of the file
ba75a61c9 fixes: Fix every use of va_list
85bec48e1 fixes: strutil.cc: rework string iterating
c5db927fd fixes: gpg.cc: fix potential memory leak
00f21e001 fixes: RPM ArchiveURI: check file length before using it
4d9aa4d84 fixes: Use clear() function instead of assignment of empty value
4bbb7edae API changes: Use 'override' keyword
8326ce09f API changes: remove function without implementation
beda412a9 API changes: Add 'const' modificator to member function
a61caa1d5 API changes: Avoid copying objects
84edf4189 dynamic memory management: wrap the mmap actions
ae35d9210 dynamic memory management: Use references instead of copies in the Cache generation methods
1095870b0 DynamicMMap::WriteString(): fix the check for "out of room" when length is automatic
767a2bc39 mmap.{h,cc}: better coding style
f6c475d73 dynamic memory management: Support large files
c830a1658 MMap: it does not make sense to have iSize larger than the system can mmap(2)
17955a25e add MMap::validData() (a short way to write the check)
c82ab1152 DynamicMMap::RawAllocate(): do not modify data on failure
dcd84fa29 DynamicMMap::RawAllocate(): no offset needed if already aligned (was off-by-one)
e451ea0cc use the safer C++-style static_cast instead of a C-style cast (from void*)
9d9b438a3 rigorously compute HeaderP as the pointer to the beginning of Map
df7528533 Use special type to return allocation failure since 0 is a valid offset value
e11e22987 factor out a repeated translation format
9b5446f2d don't even start to fill in a structure, if we can't allocate the prerequisites
696cbc244 Add workaround for packages with missing tags
d976934af DynamicMMap::RawAllocate(): assert that a zero-size item is never allocated
2490cd50d refactor DynamicMMap::WriteString() to re-use DynamicMMap::RawAllocate()
527d18d0b dynamic memory management: apt-pkg/pkgcachegen.{cc,h} changes
3c47cf65e dynamic memory management: Add and document APT::Cache-{Start,Grow,Limit} options for mmap control
5055b1f5c dynamic memory management: DynamicMMap::Grow: add optional debug output
0c34bc3da 0.5.15lorg2-alt70
e04264179 packagekit support: Port pkgCacheFile::GetSourceList and its dependencies from Debian
a1621866c packagekit support: Port ListUpdate function from Debian
f2e3bdf0d API changes: Remove ABI compat stuff
4fe3d8379 API changes: Bump soname
84ab36cf7 0.5.15lorg2-alt71
c2d779446 rpmindexfile.cc rpmPkgListIndex::Merge(): drop a bogus call to FileFd::Seek()
184fb8470 fixes: Process error on loading release info
927a47b0d fixes: Fix copying release information from cdrom
af5c308c4 0.5.15lorg2-alt72


$ git log -p --reverse 0.5.15lorg2-alt69..one_more_time

(Тут слишком длинная простыня получилась.)

-- 
Best regards,
Ivan


Подробная информация о списке рассылки Devel