LINUX.ORG.RU

Релиз Clang с новой технологией проверки безопасности кода

 , ,


0

2

Увидел свет новый выпуск являющегося частью проекта LLVM компилятора Clang с технологией SAFECode.

Данная технология предназначена для отслеживания возможных проблем работы с памятью в разрабатываемом приложении, при этом не изменяет поведение компилятора, когда неактивна. Включить её можно через указание специального ключа командной строки при сборке. Преимуществами по сравнению с таким инструментом как Valgrind являются:

  • более информативные сообщения об ошибках;
  • возможность оптимизации некоторых run-time проверок;
  • отсутствие динамической трансляции как у Valgrind;
  • более точно определяет структуру программы, так как знает расположение границ отдельного стека и глобальных объектов (для поиска данных границ Valgrind использует эвристические методы).

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

  • выявление некорректного доступа к памяти (указатели на несуществующий или удаленный объект);
  • определение неправильных вызовов функции free(), например, двойное освобождение выделенной памяти;
  • определение использования неинициализированных указателей;
  • выявление ошибок при работе с памятью, вызванных неправильным использованием функций стандартной библиотеки;
  • дополнительные оптимизации, включая удаление проверок корректности типов на этапе загрузки/сохранения и вынос за пределы циклов.

Clang это фронт-энд компиляторов С/С++, Objective-C, который разрабатывается на замену GCC в BSD-системах. Интересен может быть также крупным корпорациям благодаря лицензии BSD. При помощи Clang уже удалось собрать ядро Linux и фреймворк Qt.

Исходный код

Страница проекта

>>> Подробности

★★★★★

Проверено: JB ()

Ответ на: комментарий от anonymous

СПО это не только GPL. А без linking exceptions оно заставляет весь софт перелицензировать под GPL.

Reset ★★★★★ ()
Ответ на: комментарий от anonymous

Ну так за это их и надо мочить. Безжалостно.

anonymous ()
Ответ на: комментарий от anonymous

> GPL must dead. Как предаюшая свободу

Все лицензии ограничивают свободу и в этом плане «ущербные». Каждая делает это своим «подлым», уникальным методом. BSD в этом плане ни чем не лучше/хуже GPL, у нее просто свои принципы ограничения и соответствующие последствия. BSD обеспечивает больше свободы в понятии: «я ХОЧУ закрыть производный код», но этим же и ограничивает других в возможности увидеть этот закрытый код и продолжить с ним работать, GPL это когда: «я ХОЧУ всегда видеть производный код» и этим тоже ограничивает, не позволяя другим делать с кодом абсолютно все что хочется, например закрыть и т.д. Нет совершенства в этом мире ;)

Buy ★★★★★ ()
Ответ на: комментарий от AST-PM-105

AST-PM-105> Еще один свободный компилятор — это «поднасрав»?

Свободный? Он же под BSDL - латентно-проприетарной лицензией. Да и бздуны сильно образовались и тут же начали наезжать на GNU, восхваляя Apple.

Quasar ★★★★★ ()
Ответ на: комментарий от AST-PM-105

AST-PM-105> Во-первых форкнуть никто не мешает

Именно! Форкнуть и закрыть. Clang будет вечно отстающим от яббловской закрытой версии.

AST-PM-105> Во-вторых слово «поднасрав» тут все равно не к месту.

К месту. Фанатики BSD категорически против СПО - давно известный факт.

Quasar ★★★★★ ()

Какой качественный закос под старого Луговского в топике наблюдается.

anonymous ()
Ответ на: комментарий от Quasar

Тупой. Кроме GPL много других лицензий. А GPLv3 их всех хочет зохавать.

anonymous ()
Ответ на: комментарий от Quasar

>Clang будет вечно отстающим от яббловской закрытой версии.

Подобными вещами грозят последние 10 лет. И где?

r ★★★★★ ()
Ответ на: комментарий от Quasar

Замечу вам, что горячо любимая здесь компания Google использует Clang-LLVM в ширь и в глубь для своего кода. Соглашусь, что финальная компиляция идет еще на GCC. Но разработка ведется в Clang.

Еще один момент. Разработка LLVM началась до того, как они перешли под крыло Apple и лицензия BSD-like была выбрана тогда-же.

anonymous ()
Ответ на: комментарий от anonymous

>Совершенство есть - public domain. Абсолютная свобода.

И абсолютная несвобода увидеть производный код.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

> И абсолютная несвобода увидеть производный код.

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

anonymous ()
Ответ на: комментарий от Deleted

> Только вот 90% из них «видят» совсем не то, что «видит» компилятор.

Только вот для этого им надо сначала еще и сделать все то, что делает компилятор. Так что самое разумное - расширить компилятор, а не писать точно такой же компилятор с нуля.

anonymous ()
Ответ на: комментарий от anonymous

> А производный-то код к тебе какое отношение имеет? С чего вдруг ограничивать свободу использования твоего кода?

по сути та же копирастия, которую фанаты GPL постоянно ругают

aho ()
Ответ на: комментарий от anonymous

Было уже - GCC-XML. И где оно сейчас? А еще есть несколько проектов (GCCSense например), предусматривающих наложение на GCC патчей и его пересборку - не очень удобное решение.

Deleted ()
Ответ на: комментарий от Quasar

> BSDL - латентно-проприетарной лицензией

У меня freebsd установленна на ноуте, я с нее работаю.

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

paranormal ★★ ()
Ответ на: комментарий от anonymous

ни кто в здравом уме не начнет писать на этом кошмаре! C++, java

RA ()
Ответ на: комментарий от Quasar

А чем это они поднасрили СПО? Могут закрыть и развивать сами? ну так ты бери последнию открытую версию и разрабатывай дальше и нефиг посягать на чужой код. И да, ты тоже можешь взять и закрыть свой код в этом проекте. Свобода. Что хочу то и делаю со своим кодом

RA ()
Ответ на: комментарий от Quasar

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

RA ()
Ответ на: комментарий от RA

<trollmode>И главное закрой, чтобы код твой никто не украл больше.</trollmode>

anonymous ()
Ответ на: комментарий от Quasar

Именно! Форкнуть и закрыть. Clang будет вечно отстающим от яббловской закрытой версии.

Форкни и сделай лучше. Сделай свой форк под GPL, если так хочешь - их лицензия это не запрещает.

Deleted ()
Ответ на: комментарий от Deleted

Какой такой GCC-XML? Поверх GCC много настоящих реализаций. static code analysis.

Ты вообще осознаешь, как любой подобный анализатор работает? Он в себя не только полный компилятор должен включать, но и линкер.

anonymous ()
Ответ на: комментарий от anonymous

>Стоит читать - Столман в припадке паранои и белой горячки перевел gcc на GPL v3 не разрешив сразу linking expections

Что-то по поводу отмены linking expections не слышал. Пруф или не было.

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от Deleted

> BSDL - не свободная? О_о

Свободна. Как шлюха в борделе. Любому даёт. Ласковая, особенно за деньги.

GPLv3 тоже свободна. Даёт только мужу. Детей, пряники, другие ништяки. За оскорбление бъёт морду.

Я за моральные ценности. Это перспективно. Остальное ведёт в тупик и анальное рабство.

alx_me ★★☆ ()
Ответ на: комментарий от paranormal

> Я не проприэтарщик и испытываю неудобства от этой лицензии ЧЯДНТ.

Хотите приватизировать прибыль и социализировать издержки. Хотите никому не платить за ПО, пользоваться им, и одновременно не участвовать в борьбе позволившей создать такое ПО.

alx_me ★★☆ ()
Ответ на: комментарий от RA

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

alx_me ★★☆ ()
Ответ на: комментарий от alx_me

> и одновременно не участвовать в борьбе позволившей создать такое ПО.

GPL-код составляет небольшую часть от кода в современных дистрибутивах, и тот преимущественно в старых проектах, так что данная «борьба» - чистый фанатизм и ничего не делание

aho ()
Ответ на: комментарий от anonymous

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

alx_me ★★☆ ()
Ответ на: комментарий от Deleted

Программа под Public Domain способна выжить только в идеальном обществе без копирастии.

А создатель 7z-то и не знал. Вроде lzma сдыхать не собирается. Если, конечно, ты не считаешь, что такие проги как xz убивают исходный код библиотеки.

ogronom ()
Ответ на: комментарий от ogronom

> Программа под Public Domain способна выжить только в идеальном обществе

А создатель 7z-то и не знал


как и авторы sqlite :)

aho ()
Ответ на: комментарий от aho

ПП - переходной процесс. Вход из него может и не быть положительным. Стратегический проигрыш это отказ от борьбы. Компромисс это всегда тактика. На компромиссах всегда выигрывает более сосредоточенный игрок со стратегическим видением. Мы находимся там где мы есть только за счёт фанатиков которых вы все тут презираете.

alx_me ★★☆ ()
Ответ на: комментарий от alx_me

> Мы находимся там где мы есть только за счёт фанатиков которых вы все тут презираете.

бери больше - без них вообще бы ничего не было, ага

aho ()
Ответ на: комментарий от aho

>GPL-код составляет небольшую часть от кода в современных дистрибутивах

Ну да, и ядро Linux, и утилиты GNU, и наиболее известные DE — это всё вместе, конечно же, небольшая часть дистрибутива.

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от paranormal

>Я не проприэтарщик и испытываю неудобства от этой лицензии ЧЯДНТ.

И какие же эти неудобства? То, что вместо одних трёх букв там другие?

Ttt ☆☆☆☆☆ ()
Ответ на: комментарий от Ttt

не совсем то, но рядом, да - насчет «набольшой части» не прав, таки большую, если конечно считать именно GPL, а не GNU часть

aho ()

перестань нести чушь, это всего ПО

RA ()

в msp430 порте прерывания допилили?

AiFiLTr0 ★★★★★ ()

Старперы, лучше оставьте детские аргументы про «латентно-проприетарную лицензию» и «подачки опенсорсу от проприетарщиков», и признайтесь хоть себе: вы просто боитесь всего нового.

Я кстати заметил, что одни и те же люди выступают и против clang, и против wayland.

AST-PM-105 ()
Ответ на: комментарий от AST-PM-105

>одни и те же люди выступают и против clang, и против wayland.

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

RedPossum ★★★★★ ()
Ответ на: комментарий от Deleted

Это все потому что clang новый. Вот станет старше, обрастет фичами, и его развитие затормозится, а архитектура станет запутаннее

goingUp ★★★★★ ()
Ответ на: комментарий от goingUp

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

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.