Jump to content

Шина (инструмент программирования)

шина
Разработчик(и) Разработчики Splint
Стабильная версия
3.1.2 / 12 июля 2007 г .; 17 лет назад ( 12 июля 2007 )
Репозиторий github /splintchecker / шина
Операционная система Кросс-платформенный
Тип Статический анализ кода
Лицензия лицензия GPL
Веб-сайт www .шина .org

Splint , сокращение от Secure Programming Lint , — это инструмент программирования для статической проверки программ на C безопасности на наличие уязвимостей и ошибок кодирования. Ранее называвшаяся LCLint, это современная версия инструмента Unix lint .

Splint имеет возможность интерпретировать специальные аннотации к исходному коду , что обеспечивает более строгую проверку, чем это возможно при простом просмотре исходного кода. использует Splint Компания gpsd в рамках усилий по обеспечению отсутствия дефектов. [ 1 ]

Splint — бесплатное программное обеспечение , выпущенное на условиях Стандартной общественной лицензии GNU .

Основная деятельность по разработке Splint прекратилась в 2010 году. По данным CVS в SourceForge , по состоянию на сентябрь 2012 года самое последнее изменение в репозитории произошло в ноябре 2010 года. [ 2 ] В репозиторий Git на GitHub внесены последние изменения, начиная с июля 2019 года. [ 3 ]

#include <stdio.h>
int main()
{
    char c;
    while (c != 'x');
    {
        c = getchar();
        if (c = 'x')
            return 0;
        switch (c) {
        case '\n':
        case '\r':
            printf("Newline\n");
        default:
            printf("%c",c);
        }
    }
    return 0;
}

Вывод Splint:

Variable c used before definition
Suspected infinite loop. No value used in loop test (c) is modified by test or loop body.
Assignment of int to char: c = getchar()
Test expression for if is assignment expression: c = 'x'
Test expression for if not boolean, type char: c = 'x'
Fall through case (no preceding break)

Фиксированный источник:

#include <stdio.h>
int main()
{
    int c = 0;  // Added an initial assignment definition.

    while (c != 'x') {
        c = getchar();  // Corrected type of c to int
        if (c == 'x') // Fixed the assignment error to make it a comparison operator.
            return 0;
        switch (c) {
        case '\n':
        case '\r':
            printf("Newline\n");
            break;  // Added break statement to prevent fall-through.
        default:
            printf("%c",c);
            break;  //Added break statement to default catch, out of good practice.
        }
    }
    return 0;
}

См. также

[ редактировать ]
  1. ^ Раймонд (2012). Браун, Эми; Уисон, Грег (ред.). Архитектура приложений с открытым исходным кодом, Том II (под ред. Эрика). Лулу. ISBN  9781105571817 .
  2. ^ «Статистика CVS проекта Splint» . Проверено 11 сентября 2012 г.
  3. ^ «История git проекта Splint» . Гитхаб . Проверено 16 сентября 2020 г.
[ редактировать ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 76e740933c9499e5e670cafe86b4f8b1__1718698320
URL1:https://arc.ask3.ru/arc/aa/76/b1/76e740933c9499e5e670cafe86b4f8b1.html
Заголовок, (Title) документа по адресу, URL1:
Splint (programming tool) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)