1.1, Аноним (-), 09:14, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
> в коде библиотеки есть проверки на переполнение, но при использовании флага "-O3" компилятор (проверено в clang) относит их к коду с неопределённым поведением ("Undefined Behavior") и удаляет как излишний код.
Шикарный баг! Небось signed/unsigned намешали в кучу...
| |
1.2, хрю (?), 09:28, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
> относит их к коду с неопределённым поведением ("Undefined Behavior") и удаляет как излишний код.
Эпично. Что-то даже такого сходу таких уязвимостей и не припомню сходу.
| |
|
2.9, пох (?), 09:55, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Эпично. Что-то даже такого сходу таких уязвимостей и не припомню сходу.
просто до них редко доходят руки у исследователей и еще реже это выносят на свет.
См. сравнительно недавнее "исправление" в nginx, не решившее до конца проблему.
http://www.opennet.me/openforum/vsluhforumID3/111703.html#10
заметьте - Дюнин о нем не в курсе по сей день.
в конце-концов, бестолковые любители -O6 должны страдать.
| |
|
3.12, Аноним (-), 10:22, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> бестолковые любители -O6 должны страдать.
что же, как не pixbuf, стоит собираться с -O3 ? Риторический вопрос, но может у тебя на него есть ответ.
| |
|
4.25, пох (?), 12:31, 31/08/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> что же, как не pixbuf, стоит собираться с -O3
только то, что проверено разработчиком именно на такую сборку - -O3 может ломать и не только проверки переполнения.
> но может у тебя на него есть ответ.
ну вот ffdk-aac, помнится, утверждали что им - можно (хз только, сколько лет никто не трогал этот код и можно ли с современными компиляторами ;-) x264 - your mileage may vary ;-)
в общем-то выгоды от O3 обычному коду нет, но тут, каэцца, ломалось и при -O2, а это гораздо забавнее, учитывая что у многих систем это дефолтны
| |
|
5.27, пох (?), 12:32, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> и при -O2, а это гораздо забавнее, учитывая что у многих
> систем это дефолтны
сорри, убежало недописанным- что у многих систем это дефолтный CFLAGS, с которым собирается все, где не указано специально.
| |
|
|
3.13, Аноним (-), 10:25, 31/08/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> сравнительно недавнее "исправление" в nginx, не решившее до конца проблему
использование "++" внутри выражений - прерогатива мамкиных какеров, с ущемленным чувством собственного достоинства.
> start = start * 10 + *p++ - '0';
это же так по-хакерски! все пацаны обзавидутся. И не важно, что пацанам и какеру уже пятый десяток пошел, на самом деле, даже если и так.
| |
|
4.44, Vkni (ok), 17:32, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> использование "++" внутри выражений - прерогатива мамкиных какеров, с ущемленным чувством
> собственного достоинства.
Ну почему же? Можно использовать ++ внутри выражений:
main = do
putStrLn $ "Hello " ++ "world!"
| |
|
|
4.24, пох (?), 12:27, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
wow, Comdiv молодец, значит. Или кто-то еще, кто не поленился донести до разработчиков.
| |
|
3.41, trolleybus (?), 14:22, 31/08/2017 [^] [^^] [^^^] [ответить]
| +4 +/– |
> бестолковые любители -O6 должны страдать
Возьмём это самое слово -O5.
Зачем мы его произносим,
Когда мы свободно могли бы сказать
“-O6”, и “-O7”, и “-O8”?
(c) Винни-Пух и Джи-Си-Си. Глава 12-я, в которой Хромик очень занят и мы впервые встречаемся с Пятнистым GDK-Pixbuf'ом
| |
|
2.33, Аноним (-), 13:24, 31/08/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Что-то даже такого сходу таких уязвимостей и не припомню сходу.
Потому что очень мало кто использует clang с -O3. Практически все основные дистрибутивы GNU/Linux собираются gcc с -O2.
| |
2.39, НяшМяш (ok), 13:41, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
это ж как надо было написать проверки, чтобы компилятор их как UB распознал
| |
|
3.58, Аноним (-), 22:43, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Интереснее как можно так написать компилятор, что он выкидывает значащий код работающий с int.
| |
|
2.65, Аноним (-), 09:41, 01/09/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Эпично. Что-то даже такого сходу таких уязвимостей и не припомню сходу.
Почитай рассылки ядра линукс и коменты Торвальдса о подобных оптимизациях. Торвальдс и его шайка все это заметили наверное еще год назад.
| |
|
|
2.5, Аноним (-), 09:49, 31/08/2017 [^] [^^] [^^^] [ответить]
| –3 +/– |
В дельфи еще лучше - он при таких UB в рантайме exception'ы генерирует (ну при определенных настройках).
| |
|
1.7, anonimus (?), 09:55, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
А в тикете написано
When this code is compiled with GCC 6.1 or Clang 3.8 with "-O2" flag, the
overflow check (rowstride / channels != width) is eliminated completely by the
compiler.
| |
1.8, Fidel Castro (?), 09:55, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
"Опасность проблемы смягчает то, что она проявляется только при сборке библиотеки с флагом оптимизации "-O3", который редко применяется для финальных сборок."
Так большинство использует -O2, так что и исправлять нечего.
| |
1.14, Аноним (-), 10:47, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
Может не надо ничего из кода удалять компиляторам? Развели ИИ в переводчике, а теперь страдаем что неверно нас понимает комп ...
| |
|
2.16, z (??), 10:54, 31/08/2017 [^] [^^] [^^^] [ответить]
| –4 +/– |
> Может не надо ничего из кода удалять компиляторам? Развели ИИ в переводчике,
> а теперь страдаем что неверно нас понимает комп ...
Я вот тоже не пойму косяк компилятора, а баг а либе
| |
|
3.26, Andrey Mitrofanov (?), 12:31, 31/08/2017 [^] [^^] [^^^] [ответить]
| +/– |
>> Может не надо ничего из кода удалять компиляторам? Развели ИИ в переводчике,
>> а теперь страдаем что неверно нас понимает комп ...
> Я вот тоже не пойму косяк компилятора, а баг а либе
Жена Це ^W^W Стандарт компилятооа вне подозрений.
| |
|
2.22, h31 (ok), 11:52, 31/08/2017 [^] [^^] [^^^] [ответить]
| +/– |
Без проблем. Собирай всё с -O0, расскажешь нам о результатах. Особенно о производительности. По моим наблюдениям - снизится раза в 2.
| |
2.37, Аноним (-), 13:31, 31/08/2017 [^] [^^] [^^^] [ответить]
| +/– |
> Может не надо ничего из кода удалять компиляторам? Развели ИИ в переводчике,
> а теперь страдаем что неверно нас понимает комп ...
Компилятор делает всё правильно. Если поведение не определено, может творить что хочет. Разумеется, не забывая плюнуть варнинг.
| |
|
3.51, УЖАС СОВКА (?), 20:44, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
И никаких warning's Настоящие погроммисты погроммируют согласно стандрту и безошибочно , аки Папа Римский .
| |
|
|
|
2.52, УЖАС СОВКА (?), 20:45, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Может проще перейти на Qt?
На Rust же, в этом году модно переходить на Rust
| |
|
3.54, VINRARUS (ok), 21:21, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Под Qt готовые графические библиотеки и вообще всё вылизывается силами KDE.
А Rust пишется под Firefox, вот когда перейдут тогда и посмотрим.
| |
|
|
|
2.29, Хряк (?), 12:49, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да, что характерно, про кде-софт не появляется новостей о закрытии уязвимости.
| |
|
3.31, iPony (?), 12:57, 31/08/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
Ну так потому что оно не особо кому надо.
А так https://www.kde.org/info/security/
PS: и естественно, если приложение падает и глючит (как раз КДЕ вспоминается), то это как раз говорит о том, что не очень хорошая обработка различных ситуаций, что и значит хорошие шансы на поиск уязвимостей.
| |
|
|
1.32, лютый жабист__ (?), 13:22, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Хи-хи.... Буквально позавчера местные сишные эксперты уверяли, что в си всё под контролем, а -O3 и "Undefined Behavior это фантастика и кривые руки".
| |
|
2.36, Аноним (-), 13:29, 31/08/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так и есть. Если не читаешь документацию к любому компилятору - ССЗБ.
| |
2.38, Аноним (-), 13:38, 31/08/2017 [^] [^^] [^^^] [ответить]
| +3 +/– |
> "Undefined Behavior это фантастика и кривые руки".
Это не фантастика, но да, кривые руки.
| |
|
3.48, УЖАС СОВКА (?), 19:37, 31/08/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ага ага
70-е
Языки и компилляторы не виноваты, что программисты путаются скача с goto по меткам в спагетти коде . Нафих структурное программирование.
90-е.
Сборщик мусора нужен тем программистам, которым нужны костыли для мозгов, нафиг java
10-е
Всем программистам вот нефиг делать,кроме ошибок в алгоритмах, также отлавливать undefined behaivour по стандартам на 700 страниц. Надо весь код с дизасемблером проверять, но gcc - лучший !!
| |
|
2.55, pripolz (?), 21:57, 31/08/2017 [^] [^^] [^^^] [ответить]
| +1 +/– |
Чтобы ты понимал, что там произошло: программер проявил некомпетентность, проверяя УБ уже после УБ, вместо того, чтобы его не допустить. Это либо закладка (что скорее всего), либо кривые руки, и да, компилятор тут абсолютно ни при чём.
| |
|
3.64, лютый жабист__ (?), 05:25, 01/09/2017 [^] [^^] [^^^] [ответить]
| –2 +/– |
>Это либо закладка (что скорее всего)
Мне ситуация напоминает когда кто-то из доблестных органов портачит, его увольняют вчерашним днём, делают покерфэйс и говорят, что "а он не из органов".
Итого: си клёвый, могучие сишники не ошибаются, а это был не сишник, а какой-то агент АНБ, вставляющий закладки в опенсорсное ПО.
| |
|
4.68, pripolz (?), 15:34, 04/09/2017 [^] [^^] [^^^] [ответить]
| +/– |
Компилер не виноват в том, что кто-то там решил, что перегружать 32-битное число допустимо.
Это не ошибка из серии "не заметил", типа
if (a = b) {
..
}
, грязный хак из серии "проверил - работает".
-----------
П.С: как думаешь, жабиные гуи используют GdkPixBuf ? А Сишарповские ? А питоновские?
| |
|
|
|
1.35, ыть (ok), 13:28, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Обновление : gdk-pixbuf2-2.36.9-1.fc25.x86_64 в fedora25 исправлено
| |
|
2.45, Хряк (?), 17:36, 31/08/2017 [^] [^^] [^^^] [ответить]
| +/– |
Да, чего-то автор наврал про fedora. И ссылка левая. У меня тоже: gdk-pixbuf2-2.36.9-1.fc26
| |
|
1.42, Аноним (-), 14:52, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
А можно в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD и Fedora GTK будет собран без поддержки TIFF? Никто же не использует текстурки TIFF в своих программах. Пусть Глаз Гнома вызывает напрямую libtiff.
| |
|
2.67, iZEN (ok), 11:48, 03/09/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
% pkg info -r tiff
tiff-4.0.8:
sane-backends-1.0.27
lcms2-2.8
webp-0.6.0_3
ghostscript9-agpl-base-9.16_5
netpbm-10.35.98
djvulibre-3.5.27_1
openjpeg15-1.5.2_1
mtpaint-3.40_8
libgxps-0.2.5
sdl_image-1.2.12_10
wx30-gtk2-3.0.2_6
imlib2-1.4.9,2
openjpeg-2.2.0
py27-pillow-3.4.2_1
poppler-0.57.0
poppler-glib-0.57.0
vigra-1.11.0_11
gdk-pixbuf2-2.36.9
- всё равно по зависимостям TIFF будет присутствовать в системе.
| |
|
1.43, fidaj (ok), 15:26, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
"Сенсация! Канпелятор создает уязвимости при помощи определенных флагов!" :D
| |
1.53, Андрей (??), 21:06, 31/08/2017 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora.
А релиз 2.36.7 был 18 июля, т.е. уже полтора месяца назад всё исправлено и пылится в архивах. А дистрибутивам плевать на обновления. А тут ещё оказывается, что один фикс как раз привлёк внимание хакеров (и, наверняка, крэкеров тоже). Просто замечательно :( Придётся пересобирать дебиан-пакет самому, ведь так просто. Но неужели каждый должен это делать сам вручную, не для этого ли существуют дистрибутивы?
| |
|
2.59, Michael Shigorin (ok), 00:40, 01/09/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Уязвимости устранены в выпуске GDK-Pixbuf 2.36.7. Уязвимости пока остаются
>> неисправленными в Debian, Ubuntu, RHEL, SUSE, openSUSE, FreeBSD, Fedora.
> А релиз 2.36.7 был 18 июля, т.е. уже полтора месяца назад всё
> исправлено и пылится в архивах. А дистрибутивам плевать на обновления.
Вот не надо обобщать: https://packages.altlinux.org/ru/p8/srpms/libgdk-pixbuf/changelog
| |
2.60, 0x0 (?), 00:46, 01/09/2017 [^] [^^] [^^^] [ответить]
| +/– |
> для этого ли существуют дистрибутивы?
И для этого тоже. Дистрибутивам потенциальных контрибъюторов стимулировать как-то ж надо :)
| |
|
3.63, Андрей (??), 03:27, 01/09/2017 [^] [^^] [^^^] [ответить]
| –1 +/– |
Если бы Дебиан что-то github'а/gitlab'а настроили, а то в https://anonscm.debian.org/git/ ничего кроме как почитать или клонировать не сделаешь. Разве что патчи слать, что иногда делаю. Но когда один раз кучу работы просто "не заметили", а потом сделали "сами" те же изменения, то это хорошенько демотивировало. Или когда шлёшь патч, а они да, говорят или не даже не говорят спасибо, и комитят под своим именем. Как такое называется!?
| |
|
2.61, Андрей (??), 03:18, 01/09/2017 [^] [^^] [^^^] [ответить]
| +/– |
Единственный баг, для которого Дебиан накладывает патч, потому что апстрим сказал, что не баг, а ядро со своим OOM виновато.
...The test fails because it can't allocate 5.7 gigs of RAM...
https://bugzilla.gnome.org/show_bug.cgi?id=765094
Опубликовано было в апреле 2016.
А проблема оказалась таки не в ядре, а как раз связана с rowstride.
| |
|
|