URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 110052
[ Назад ]

Исходное сообщение
"Обновление libpng 1.6.27 с устранением уязвимости"

Отправлено opennews , 30-Дек-16 10:54 
В очередной серии обновлений библиотеки libpng (http://www.libpng.org/pub/png/libpng.html) 1.6.27, 1.5.28, 1.4.20, 1.2.57 и 1.0.67 устранена (http://openwall.com/lists/oss-security/2016/12/29/2) уязвимость, которая может привести к разыменованию нулевого указателя (в современных системах приводит к краху приложения), при определённых манипуляциях с PNG-изображениями. Примечательно, что вызывающая уязвимость ошибка присутствует в коде libpng более 20 лет, с  26 июня 1995 года.


Проблема вызвана разыменованием нулевого указателя и проявляется при использовании в программах функции png_set_text_2(), позволяющей манипулировать содержащимися в метаданных текстовыми блоками. Подобная функция не используется в firefox, imagemagick, graphicsmagick, pngcrush и  просмотрщиках изображений, и применяется только в некоторых графических редакторах. Более того, для эксплуатации уязвимости приложение должно загрузить блок текста в структуру PNG, задем удалить весь текст, а затем добавить другой блок текста в туже самую структуру, что делает атаку маловероятной.

URL: http://openwall.com/lists/oss-security/2016/12/29/2
Новость: http://www.opennet.me/opennews/art.shtml?num=45786


Содержание

Сообщения в этом обсуждении
"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 10:54 
Какой смысл пять версий либы поддерживать?

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено turbo2001 , 30-Дек-16 11:13 
Популярность старых версий и несовместимость API

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено paulus , 30-Дек-16 11:36 
> Популярность старых версий и несовместимость API

спасибо за ликбез.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 22:45 
Мне кажется что поддерживают две, а для остальных выпустили обновление по особому случаю.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено pavlinux , 04-Янв-17 20:51 
Купил iPhone 6, вышел iPhone 7, всех младше надо банить, нефиг на старье работать.  

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 06-Янв-17 03:28 
Погодите пару лет и посмотрите как у Вас сначала аккуртненько не шлют обновления, а потом половина приложений не работает, а потом и во все откажет флеш память.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 11:10 
Вот тебе и безопасный си...

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 11:16 
> Вот тебе и безопасный си...

Опасная бритва -- это опасная бритва, если Вам её кто-то впаривал как безопасную -- с ним и разбирайтесь.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 11:18 
Нужно просто, чтобы был человек, который идеально обращается с опасной бритвой. И чтобы с бритвой работали только через него. Примерно как JVM безопасно работает с памятью, а все остальные только через него.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 11:39 
> Нужно просто, чтобы был человек, который идеально обращается с опасной бритвой.

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


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 12:07 
Специализация - это цивилизация. Отсутствие специализации было во времена жизни в пещерах.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Куяврег , 30-Дек-16 12:57 
нужно заметить что специализация и универсализация одновременно существуют. ну как анализ и синтез. и утверждать, что развитие зависит только от специализации, подобно как развитие зависит только от анализа - неверно

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 13:10 
Шигорин чутка позабыл о том, что весь UNIX построен на принципе специализации: пусть каждая программа делает только одну вещь, но делает это хорошо. То же самое можно сказать и о работе с памятью. Надежнее доверить это дело JVM.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Andrey Mitrofanov , 30-Дек-16 13:17 
>весь UNIX

Не весь.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 13:19 
Согласен, 99.999% != 100%

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Andrey Mitrofanov , 30-Дек-16 13:46 
> Согласен, 99.999% != 100%

На каникулах возьми TAOUP и проштудируй на предмет помянутой выше универсализации. В след.раз, может, не будешь упёртым дураком выглядеть.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 14:08 
так я и включил его в 0.001%. Или вы сложение еще не проходили?

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 14:59 
> Шигорин чутка позабыл

...и тут же...

> пусть каждая программа делает только одну вещь, но делает это хорошо.
> То же самое можно сказать и о работе с памятью. Надежнее доверить это дело JVM.

А я и не знал, что JVM -- это такой менеджер памяти, и только.  Или что JVM "это дело" делает хорошо.

Ребятки, проверяйте свои доводы как следует -- меня на слове поймать можно, но для этого надо быть специалистом, а не демагогом.  Творческого времяпровождения в наступающем году :)

PS: разумеется, про "попенсорс" вещал и изрядно, как предполагаю, нагадил в соседних темах кто-то с того же самого адреса.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено С того же адреса , 30-Дек-16 15:31 
Рассматривай JVM как coreutils. Отдельные компоненты JVM (как и coreutils) вполне себе делают только одну вещь.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 15:53 
> Рассматривай JVM как coreutils. Отдельные компоненты JVM (как и coreutils)
> вполне себе делают только одну вещь.

А какой именно из них отвечает в JVM только за работу с памятью?

PS re #37: *sigh*


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 15:57 
> А какой именно из них отвечает в JVM только за работу с памятью?

Тот, который отвечает только за работу с памятью. (А какой ты ожидал ответ? Название компонента? Название сипипишного класса в OpenJDK?)


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 22:08 
Да-да… ты это современным работодателям на территории exUSSR расскажи… а то ж они не знают, желая всё как один себе универсальных солдат за мизер денег.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 31-Дек-16 01:18 
Где exUSSR и где цивилизация. Те, кто с Западом плотно работают - до тех доходит обычно. Ну, или разоряются.

"(offtopic) про цивилизации"
Отправлено Michael Shigorin , 31-Дек-16 02:31 
> Где exUSSR и где цивилизация. Те, кто с Западом плотно работают -

...вот те и знают, что там за "цивилизация": заикнулся, что денег впритык на жильё и дорогу, но не еду -- problem solved, подыскиваешь картонную коробку, а ехать уже никуда не надо...

Когда люди подстилаются под золотого тельца настолько, что начинают денежными циферками мерить всё -- они не то что цивилизацией стать не могут, они перестают быть людьми.


"(offtopic) про цивилизации"
Отправлено Crazy Alex , 31-Дек-16 17:57 
Что за богатая фантазия? Но вообще - сюрприз - твой доход определяется твоей полезностью. И если персонаж настолько бесполезен, что на еду не хватает - ну, это повод ему и менять что-то. Рынок труда - это, в сущности, очень просто.

А вообще - ты это рассказываешь человеку, который исключительно с Западом работает последние лет семь, у которого есть друзья-эмиграты... в общем, в курсе чуток, так что давай без баек.

Из моих знакомых там проблемы только у одного человека - вызванные тем, что он уехал без подходящего образования и с некоторой обузой. Тому - да, приходится выкручиваться, не всегда легально. Остальные в норме - вероятно, потому что голову включали ещё до переезда и выключать не собираются.

С другой стороны, я знаю тех, кто работает на российских заказчиков - вот тут стремление сэкономить каждую копейку и навалить груду лишних обязанностей очень заметно.

И уж чего у тех же американцев напрочь нет - так это попыток найти "универсальных солдат". Наоборот - специализация, разделение зон ответственности и тому подобное. Если ты пишешь код - не твоя забота, кто и зачем ставил задачу именно так, хотя поинтересоваться не грех. И даже не твоя забота, чтобы твои резулььтаты куда-то попали - для этого есть специально обученные люди, у которых больше и информации, и навыков. Если ты QA - ты проверяешь соответствие поведения спецификации. Ты менеджер - определяешь на своём уровне что ты хочешь сделать, выясняешь у разработчиков, какие ресурсы для этого нужны и решаешь, что всё-таки делать.

Никогда менеджер не лезет в собственно разработку. Никогда вменяемый разработчки не пытается навязать что, по его мнению, должно попасть в продукт. Никогда не требуют "а сократите сроки разработки на X%" - вместо этого в случае нужды уточняют, какие фичи можно отложить и как помочь лучшей организацией работы (серверы, QA и т.д.)

Вот нет в exUSSR всего этого.


"(offtopic) про цивилизации"
Отправлено Аноним , 01-Янв-17 01:26 
> Когда люди подстилаются под золотого тельца настолько, что начинают денежными циферками
> мерить всё -- они не то что цивилизацией стать не могут,
> они перестают быть людьми.

Нет, конечно, намного правильнее когда некоторые очень нужные и полезные люди фотошопят часы, стоящие дороже чем годовая зарплата инже-негра, не забывая что-то там вякать про нестяжательство и какие там еще высокоморальности. А инже-негры спасибо если не помойку у ближайшего супермаркета окучивают. А всяко выйдут на пенсию - и присоединятся к чувакам у контейнера. Потому что на типичную пенсию можно только с голода подохнуть.

И если общество расставило свои приоритеты в нужности и распределени благ вот так - ну ок, значит так. Однако что-то мне подсказывает что у такого обшества ракеты обречеы долбаться о небесную твердь. А когда вы считаете "цивилизацию" и прогресс чем-то плохим - да наздоровье, только остальной мир ради вас на паузу не встанет и поэтмоу боком все это выйдет только тем кто пожелал окуклиться и вернуться обратно в пещеры.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 23:40 
> Специализация - это цивилизация. Отсутствие специализации было во времена жизни в пещерах.

А Valve почему-то нрвятся T-shaped people. Наверное специализация должна быть как-то так. А то не круто когда человек вроде бы хороший програмер но понятия не имеет как настроить почтарь. Да, видал такого - этот чудак цитировать нормально не мог и переписка с ним сильно клинила рабочие процессы остальным.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено iZEN , 01-Янв-17 00:39 
> Специализация - это цивилизация. Отсутствие специализации было во времена жизни в пещерах.

Любой человек должен уметь менять пелёнки, планировать вторжения, резать свиней, конструировать здания, управлять кораблём, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, вносить удобрения, программировать, вкусно готовить, хорошо сражаться, умирать с достоинством. Специализация — удел насекомых.

Роберт Хайнлайн, «Достаточно времени для любви, или Жизни Лазаруса Лонга»


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Илья , 30-Дек-16 14:18 
> Это путь сперва специализации, а затем деградации

Ну не скажи. Бизнес-логику очень сложно мешать с низкоуровневыми вызовами. Да и не нужно.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 15:28 
>> Это путь сперва специализации, а затем деградации
> Ну не скажи. Бизнес-логику очень сложно мешать с низкоуровневыми вызовами.

Сперва да, а затем "у нас БУЗИНЕС, шо вы со своей безопасностью впёрлись!" (до поры).


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 01-Янв-17 01:39 
> Сперва да, а затем "у нас БУЗИНЕС, шо вы со своей безопасностью
> впёрлись!" (до поры).

Бывает и другой полюс, как в том рассказе про хакера и столовую. Когда все ресурсы брошены на заякоривание солонок на супернадежные цепи. На остальное ресурсов не остается или остается мало. С понятным результатом. Безопасность - хорошо. Но если перебдеть то переклин на безопасности может застопорить вообще все работы. Потому что жить вредно и опасно. От этого умирают, гарантия 100%.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Comdiv , 30-Дек-16 14:58 
> чтоб деграданты не засудили.

Засуживают как раз не деграданты, а злоумышленники, находящие уязвимости в юридической защите компании-производителя. Ну а к сути специализации этот пример вообще не имеет отношения.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено ы , 30-Дек-16 23:48 
Ознакомься с основами явы, потом уже рот раскрывай.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Отражение луны , 30-Дек-16 11:17 
Безопасный язык программирования? Что дальше? Глютенфри микроволновка?

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 11:51 
Вот тебе и безопасная Java...
Вот тебе и безопасный C#...
Вот тебе и безопасный Python...

Бот, уйди.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 12:00 
> Бот, уйди.

Это вряд ли бот -- скорее человек, который купился на тыканье в проблемы (вполне реальные) языков с ручным управлением памятью и рекламу (обычно лукавую) языков с автоматическим управлением памятью.

А ведь это несколько классов проблем, которые размениваются на другие классы проблем -- и не отменяют третьих, что порой и подводит уверовавших в "это же безопасный язык"...


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Comdiv , 30-Дек-16 15:02 
> рекламу (обычно лукавую) языков с автоматическим управлением памятью.

Можете чуть конкретней рассказать про лукавую рекламу? Где её видели, когда и как оценивали объём отностительно нелукавой рекламы?


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 30-Дек-16 15:29 
>> рекламу (обычно лукавую) языков с автоматическим управлением памятью.
> Можете чуть конкретней рассказать про лукавую рекламу?

Например, когда играют на предположениях и "логичных" выводах; когда рассказывают о решаемых проблемах, но умалчивают о создаваемых взамен.

> Где её видели, когда и как оценивали объём отностительно нелукавой рекламы?

Много где, и здесь нередко; на глазок, благо пристрелямши.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 14:22 
Пример небольшого ошибочного кода:

int x;
printf("Введите первое число: ");
scanf("%d", &x);
int y;
printf("Введите второе число: ");
scanf("%d", &y);
printf("Сумма двух чисел: %d\n", x + y);

Здесь 3 серьёзные ошибки. Кто-нибудь сможет найти все 3? Две, думаю, найдёт большинство знающих Си.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 30-Дек-16 14:52 
Отсутствие обработки ошибок scanf (в частности, кривого ввода), интовое переполнение при сложении и UB при слишком большом введенном числе. Причём последнее не лечится.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 17:15 
Слишком большое введённое число - это частный случай обработки ошибок (ERANGE):
https://www.securecoding.cert.org/confluence/display/c/INT05...

Лечить здесь нечего, нужно просто проинформировать человека о превышении допустимых границ значений. В качестве альтернативы можно написать собственный scanf и использовать библиотеку для работы с длинными числами. Тоже несложно реализуется.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 30-Дек-16 19:50 
Да. Что это я, в самом деле. Но тогда не представляю, какая там третья ошибка.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 30-Дек-16 20:11 
> Да. Что это я, в самом деле. Но тогда не представляю, какая
> там третья ошибка.

Решил таки проверить - а вот таки есть подвох, не зря мне мерещилось.
Вот это:

r = scanf("%d", &x);
printf("r=%d\n", r);

радостно печатает единичку при  вводе чего-то аски длинного вроде 11111111111111111111111111 (что означает, что один элемент был успешно распарсен), при этом в x попадает -1.

Если делать как положено:

errno = 0;
r = scanf("%d", &x);
err = errno;
printf("r=%d, errno=%d\n", r, err);

то ERANGE ловится отлично.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 09:34 
Насчёт трёх ошибок Вы правильно определили. Да, их всего там было 3. Пропущено две обработки ошибок и нет проверки на переполнение. Подразумевалось, что ввод слишком большого числа - это частный случай обработки ошибок, поэтому отдельной ошибкой его считать бессмысленно.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 09:44 
> errno = 0;
> r = scanf("%d", &x);

Кстати, устанавливать errno в данном случае в 0 было абсолютно бессмысленно, т.к. он выставляется только при возвращении функцией значения -1. Достаточно проверять возвращаемое значение.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 31-Дек-16 18:08 

#include <stdio.h>
#include <errno.h>

int main(void)
{

<-->int x, r, err;
<-->printf("Please enter x: ");
<-->errno=11;
<-->r = scanf("%d", &x);
<-->err = errno;
<-->printf("r=%d, x=%d, err=%d", r, x, err);

return 0;
}


Вот это при вводе 9999999999999999999999999999999999999999 возвращает 1, устанавливая x в 2147483647 и errno в ERANGE.

Оно же при вводе 2147483647 возвращает 1, устанавливая x в 2147483647 и НЕ МЕНЯЯ errno.

Когда вы хотите проверять errno - устанавливайте его в 0, если не хотите сюрпризов. Масса функций меняет его только в случае ошибки.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 19:08 
Да, действительно, прошу прощения, не прочёл документацию до конца, этой функцией я почти никогда не пользовался. Значит эта функция, на мой взгляд, тоже подпадает под разряд небезопасных, увы. Особенно, если считывается одновременно несколько значений (определение, к какому из них относится ошибка).

Чаще всего функции возвращают -1 (syscalls), многие к этому привыкли, реже сам код ошибки (pthreads).


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 30-Дек-16 14:59 
Но вообще все давно в курсе, что scanf - не идеал ни разу, и обычно лучше применять отдельное строки и strtoX()

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 17:29 
> Но вообще все давно в курсе, что scanf - не идеал ни
> разу, и обычно лучше применять отдельное строки и strtoX()

Не идеал, если требуется распарсить строку согласно форматированию, либо если вводится строка (возможность переполнения, лечащаяся модификатором максимальной длины строки, например, %99s), - но для ввода числа вполне подходит.

Для strtoX прийдётся так или иначе реализовывать чтение данных с потока ввода (но уже своими силами), но это мало что даёт. Мало того, при использовании strtoX можно столкнуться с большой проблемой. С одной стороны всё равно нужно анализировать errno на ошибки, а с другой errno выставляется при значении, равном 0. Но откуда мы знаем, что errno в этом случае был выставлен именно нашим вызовом, а а не вызовом из сторонней библиотеки, в код которой мы даже не заглядывали. А может быть он вообще остался в том же значении ещё с прошлого вызова нашей же функции, а пользователь просто ввёл 0.

Увы, я уже видел достаточно примером кода, где ошибки игнорируют, используют небезопасные функции, либо используют стиль обработки ошибок lazy (assert по любой ошибке). А основной причиной является стандартизация небезопасных функций, которые просто исторически используются и от которых уже невозможно отказаться без потери обратной совместимности.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 30-Дек-16 20:01 
Разумеется - читаем в буфер, токенизируем (а то и полноценный разбор), потому преобразования. Ситуации, когда это не нужно - экзотика, в общем-то.

Насчёт errno - вообще чушь, простите. Устанавливайте его в 0 непосредственно до вызова функции, проверйте сразу после - и всё отловите.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 09:41 
> Насчёт errno - вообще чушь, простите. Устанавливайте его в 0 непосредственно до
> вызова функции, проверйте сразу после - и всё отловите.

Вот в этом то и вся суть. Об этой особенности мало кто знает. Подобные ситуации и ведут за собой код с ошибками. Поэтому считаю, что необходимо популяризовать подобные примеры ошибочного кода с объяснениями. Т.к. новость про уязвимость в библиотеке на языке Си, с большой вероятностью сюда могут заходить люди знающие язык Си на достаточно хорошем уровне. Возможно, кто-то узнает для себя что-либо полезное.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Michael Shigorin , 31-Дек-16 14:40 
> считаю, что необходимо популяризовать подобные примеры ошибочного кода с объяснениями

Может, попробовать в рамках http://rosettacode.org ?  Примеры там уже есть, остаётся предложить рубрику контрпримеров.

PS: пришлось добавить пробел, автолинкер захватил лишнего.

PPS: надо же, читаю тут http://odnako.su/hi-tech/pc-hardware/-483565-obzor-i-sravnit.../ и вижу на перекликающуюся тему:

---
Также можно использовать примеры из коллекции SAMATE американского института NIST.
---


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 15:34 
> Может, попробовать в рамках http://rosettacode.org ?  Примеры там уже есть, остаётся предложить рубрику контрпримеров.

Я лишь подаю идеи, моего энтузиазма и свободного времени хватает пока только на opensource-разработку. Но по факту все возможные ситуации расписаны на сайте CERT (там не только язык Си).  Любому считающему себя профессиональным программистом CERT обязателен к прочтению. Я мог бы привести примеры посложнее, ответ в которых предсказать правильно смогут немногие. Одну из придуманных задачек давал своим ребятам, никто не смог правильно ответить на результат простого выражения.

> PPS: надо же, читаю тут http://odnako.su/hi-tech/pc-hardware/-483565-obzor-i-sravnit.../ и вижу на перекликающуюся тему:

Спасибо за ссылку, почитаю на досуге.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 31-Дек-16 17:41 
Интересные советы там даются по написанию кода под Эльбрус. Из них можно сделать вывод, что с приложениями, написанными под x86, будут большие проблемы в производительности. Особенно большие будут по части межкомпьютерного протокольного обмена. Там используются невыровненные типы данных и упакованные структуры. А вот рекомендации по использованию static inline очень удивили. Я привык к обратному, использовать static inline только как замену большим макросам, т.к. упрощает процесс разработки и читабельность кода. В остальном же выгоднее использовать функции, если они часто вызываются, т.к. постоянное использование static inline будет просто напросто забивать будет TLB, из-за чего будет падать производительность.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 19:13 
> Вот тебе и безопасный си...

Ну, понимаешь, "либы" на бидоне спросом не пользуются. Хотя-бы потому что кроме как из бидона ниоткуда и не вызываются.

А так вон в вебне ломают и без всяких сей. WormPress даже обозвали характерно. За это самое.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 21:05 
>> Вот тебе и безопасный си...
> Ну, понимаешь, "либы" на бидоне

Казалось бы, причем тут бидоны, но ... кто о чем, а подгорающий о своем, о неосиленном^W наболевшем.

> Хотя-бы потому что кроме
> как из бидона ниоткуда и не вызываются.

И откуда вы такие, ыкспертные знатоки всего и вся, беретесь только?

#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_SetProgramName(argv[0]);  
  Py_Initialize();
  PyRun_SimpleString("import SimpleHTTPServer\n"
                     "import SocketServer\n"
                     "PORT = 8000\n"
                     "Handler = SimpleHTTPServer.SimpleHTTPRequestHandler\n"
                     "httpd = SocketServer.TCPServer(('localhost', PORT), Handler)\n"
                     "print \"serving at port\", PORT\n"
                     "httpd.serve_forever()\n"
  );
  Py_Finalize();
  return 0;
}



% gcc pytest.c $(pkg-config --cflags --libs python2)


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Crazy Alex , 31-Дек-16 00:54 
Предлагаешь на любой чих таскать за собой питон и бороться с его версиями?

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 01-Янв-17 01:43 
> Казалось бы, причем тут бидоны, но ... кто о чем, а подгорающий
> о своем, о неосиленном^W наболевшем.

Судя по вашему коменту - вам виднее.

> И откуда вы такие, ыкспертные знатоки всего и вся, беретесь только?
>

#include <Python.h> 

И все бы это замечательно, но это - не сишная либа. А если уж HTTP сервер из сей хочется - так есть lwan, без горбатой питонятины с ее версиепроблемами и прочими радостями. И быстрый как понос к тому же.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 01-Янв-17 04:47 
>>> "либы" на бидоне спросом не пользуются. Хотя-бы потому что кроме как из бидона ниоткуда и не вызываются.
> И все бы это замечательно, но это - не сишная либа.

То либа на бидоне кроме как из бидона ниоткуда не вызывается, то это вдруг уже не сишная либа.  
> А если уж HTTP сервер из сей хочется - так есть lwan,

В общем, зачетный юлеж.



"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 01-Янв-17 14:38 
> То либа на бидоне кроме как из бидона ниоткуда не вызывается, то
> это вдруг уже не сишная либа.

Я не знаю как еще понятнее тебе объяснить что сишники такой "либой" пользоваться не будут. Эти гады натурально смеют быть недовольны соломенной хижиной и выбирают кирпичи и бетон. Даже если ваша соломенная хижина и строится быстрее, ее эксплуатационные качества потом оставляют желать. И если либа на сях достаточно тривиально цепляется потом куда угодно и создает миниум проблем, то питона все это совершенно не касается. Наверное при сильном желании можно аналог libpng и на питоне накорябать. И даже потом изъ...ться вызвать это из какого-нибудь ruby. Но это будет редкостная порнография, в отличие от.

> В общем, зачетный юлеж.

Так не юли. Твои кривые эрзацы типа-либ мало кому нужны. Тем более что твой пример не показал собственно создание библиотечного реюзабельного компонента, если ты вдруг не заметил.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 01-Янв-17 16:25 
>> То либа на бидоне кроме как из бидона ниоткуда не вызывается, то
>> это вдруг уже не сишная либа.
> Я не знаю как еще понятнее тебе объяснить что сишники такой "либой"
> пользоваться не будут.

Видишь ли, о великий знаток всего и вся, "не будут" и "не смогут" - две большие разницы.
https://docs.python.org/3/extending/embedding.html

>> В общем, зачетный юлеж.
> Так не юли. Твои кривые эрзацы типа-либ мало кому нужны.

Классно ты срулил с темы. Хотя тебя за язык вроде никто не тянул. Не нес бы, как обычно, с умным видом очередной бред и глядишь, не пришлось бы в очередной раз изворачиваться и переводить стрелки.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 11:34 
какая то странная "уязвимость", больше похоже на "баг"

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Ящ , 30-Дек-16 11:41 
Круто. Как нашли баг?

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Куяврег , 30-Дек-16 12:59 
> Миллионы пар попенсорц-глаз 20 лет искали уязвимость.

нужно было прятать код - это точно решает все проблемы


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 13:11 
21

> The current public release, libpng 1.6.27, fixes a 21-year-old null- pointer dereference (see warning below) and includes some minor build tweaks.


"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено anonimous , 30-Дек-16 13:14 
А libpng, кстати, и этой вашей проприетарной pvs-studio проверяли, и как-то упустили сию уязвимость.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Аноним , 30-Дек-16 13:08 
Когда ждать deb'ы для Trusty 14.04 LTS? (поддержка же вроде бы до 2019 года должна быть)
https://launchpad.net/libpng/+packages

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено iZEN , 30-Дек-16 17:10 
На FreeBSD вчера обновили - http://www.freshports.org/graphics/png/

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Я. Р. Ош , 30-Дек-16 22:42 
И че? В генту тоже вчера.

"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено iZEN , 30-Дек-16 22:45 
> И че? В генту тоже вчера.

А где посмотреть список последних обновлений?



"Обновление libpng 1.6.27 с устранением уязвимости"
Отправлено Черный Властелин , 31-Дек-16 03:40 
Не поверишь, eix-diff