Bug 40010 - rebuild with gcc10 exposes buggy code (with garbage in strings)
Summary: rebuild with gcc10 exposes buggy code (with garbage in strings)
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: synaptic (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Ivan Zakharyaschev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-04-28 18:26 MSK by Ivan Zakharyaschev
Modified: 2021-05-14 21:28 MSK (History)
7 users (show)

See Also:


Attachments
log with gcc10 (398.48 KB, text/plain)
2021-04-28 18:26 MSK, Ivan Zakharyaschev
no flags Details
log with gcc9 (20201209) (419.41 KB, text/plain)
2021-04-28 19:10 MSK, Ivan Zakharyaschev
no flags Details
sources.list (20201209) (305 bytes, text/plain)
2021-04-28 19:11 MSK, Ivan Zakharyaschev
no flags Details
screenshot with the bug (synaptic_after; thanks amakeenk) (170.74 KB, image/png)
2021-04-28 19:12 MSK, Ivan Zakharyaschev
no flags Details
screenshot without the bug (synaptic_before; thanks amakeenk) (165.60 KB, image/png)
2021-04-28 19:13 MSK, Ivan Zakharyaschev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan Zakharyaschev 2021-04-28 18:26:12 MSK
Created attachment 9335 [details]
log with gcc10

synaptic-0.58-alt23

Это наблюдается после пересборки и нынешнего пакета synaptic-0.58-alt23 в текущем
окружении Sisyphus (обнаружено amakeenk@ при тестировании нового релиза пакета):

> Обнаружен регресс в пакете synaptic:
> После обновления некорректно стал отображаться размер пакетов (см. скриншоты).
> Воспроизводится только на x86_64 и armh. На i586 размер отображается корректно.
> Шаги воспроизведения:
> 1. Запустить synaptic
> 2. Выбрать Параметры->Параметры->Столбцы и шрифты, поставить галочку на поле Размер загружаемых файлов, Применить.
> 3. Пролистать список пакетов до строк, где атрибут Размер не пустой.

Какое изменение вызывает проявление этой ошибки?

Появляется впервые при сборке в среде архива Sisyphus 20201210 в
отличие от 20201209; их разница -- gcc10 (например, по данным
/beehive/logs/Sisyphus/x86_64/archive/2020/12{09,10}/ufb-1.zst):

8c8
< synaptic gcc-c++ 9-alt2
---
> synaptic gcc-c++ 10-alt1
10c10
< synaptic gcc9-c++ 9.3.1-alt2
---
> synaptic gcc10-c++ 10.2.1-alt2
108c108
< synaptic libstdc++9-devel 9.3.1-alt2
---
> synaptic libstdc++10-devel 10.2.1-alt2

Скорее всего это ненадёжный код в synaptic, одинаково плохой независимо
от версии gcc.

Зафиксирую здесь ещё, что при компиляции gcc10 warnings те же
самые по сути (помимо пунктуации). Логи от сборки с --nprocs=1
приложены, и sources.list.

Так что ищу это плохое место в исходном коде synaptic.
Comment 1 Ivan Zakharyaschev 2021-04-28 19:10:30 MSK
Created attachment 9336 [details]
log with gcc9 (20201209)
Comment 2 Ivan Zakharyaschev 2021-04-28 19:11:38 MSK
Created attachment 9337 [details]
sources.list (20201209)
Comment 3 Ivan Zakharyaschev 2021-04-28 19:12:51 MSK
Created attachment 9338 [details]
screenshot with the bug (synaptic_after; thanks amakeenk)
Comment 4 Ivan Zakharyaschev 2021-04-28 19:13:40 MSK
Created attachment 9339 [details]
screenshot without the bug (synaptic_before; thanks amakeenk)
Comment 5 Ivan Zakharyaschev 2021-04-29 08:39:51 MSK
Нашёл эти места (с типичным use-after-free). Скоро отправлю исправление.
Comment 6 Ivan Zakharyaschev 2021-05-14 15:51:57 MSK
Релиз с фиксом этой ошибки собирается в заданиях 42898 (Sisyphus) и 42899 (p9).
Comment 7 Ivan Zakharyaschev 2021-05-14 15:53:50 MSK
(In reply to Ivan Zakharyaschev from comment #6)
> Релиз с фиксом этой ошибки собирается в заданиях 42898 (Sisyphus) и 42899
> (p9).

А, это не те номера -- это я для e2k отправил проверить сборку.

Задания 271478 и 271479
Comment 8 Repository Robot 2021-05-14 21:28:01 MSK
synaptic-0.58-alt24 -> sisyphus:

 Tue May 11 2021 Ivan Zakharyaschev <imz@altlinux> 0.58-alt24
 - Fixed a use-after-free bug (appearing as garbage being shown in the size
   columns, notably after recompilation with gcc10). (ALT#40010)
 - Unset Synaptic::supported-text in the packaged configuration file. (That's
   the straight way to get "Package is supported" translated in the UI rather
   than the previous hack in the code.)
 - Included the sr@latin translation in the package.
   (It got excluded before because of an outdated sr@Latn name.)