Описание тега splint

NoneSplint ("безопасное программирование lint") - это реализация lint, то есть инструмент для статической проверки программ C на наличие уязвимостей безопасности и ошибок кодирования. С минимальными усилиями Splint может использоваться как лучший пух. Если приложить дополнительные усилия для добавления аннотаций к программам, Splint может выполнить более строгую проверку, чем любой стандартный lint.
0 ответов

Немедленная передача адреса непоследовательно

У меня есть сегмент кода здесь, но SPLINT дает мне предупреждение здесь "tcpuip\dhcpc\dhcpc.c: (in function send_discover) tcpuip\dhcpc\dhcpc.c(219,21): Immediate address &m->options[4] passed as only param: add_msg_type (&m->options[4…
05 апр '12 в 06:12
0 ответов

Статические анализаторы C: настройка для автоматического включения всех файлов, о которых знает IDE/ компилятор

Нужно ли вручную указывать статическому анализатору, какие файлы включать в анализ? Я использую IDE на основе NetBeans (MPLAB X) для программирования встроенной системы на C (с компилятором XC8). Создать проект очень просто, и когда я добавляю файлы…
23 фев '14 в 11:26
0 ответов

Ошибка шины вне диапазона

Я использую Splint 3.1.2 и получаю ошибку Out of Range во время выполнения Splint в моем коде. В моем коде 2000 файлов.C, в некоторых файлах.c мое выполнение останавливается каждый раз из-за ошибки Out of Range. Может кто-нибудь помочь мне в этом во…
17 мар '18 в 14:49
1 ответ

Как подключить Gradle к пользовательскому EXE и подключить его консольный вывод?

Хотя этот вопрос касается языка C, плагина Gradle C и статического анализатора oldschool C, называемого splint, я считаю, что на этот вопрос может ответить любой гуру Gradle, который понимает, как подключить сборку Gradle к исполняемому процессу. Эт…
08 май '15 в 08:59
1 ответ

Как аннотировать собранный BoehmGC код для Splint?

Splint хорошо отслеживает утечки памяти в C-коде. каждый malloc() должен иметь соответствующий free(), Но BoehmGC-собранный код использует GC_MALLOC() без соответствия GC_FREE(), Это заставляет Сплинта сходить с ума от множества сообщений об утечка…
01 авг '11 в 19:21
4 ответа

Чем отличается структура в C99 от ANSI-C?

Этот код кажется неправильным в ANSI-C, но хорошо в C99: struct a { int x; int y; } z; Каковы различия о структуре в C99 и ANSI-C? Редактировать: я забыл "а", мой плохой. Этот код компилируется нормально с gcc в режиме C99, но это ошибка синтаксичес…
27 янв '09 в 10:24
1 ответ

Шина, как выполнить анализ заражения

Как выполнить анализ Taint с использованием Splint? Я установил Splint на мою Ubuntu 12.04. Создан небольшой тестовый пример, как показано ниже: #include<stdio.h> #include<string.h> int main(int argc, char *argv[]) { char a[10]; strncpy(…
29 сен '12 в 04:17
1 ответ

Рекомендуемый способ отследить массив вне доступа / записи в C-программе

Рассмотрим написание реализации для некоторого неочевидного алгоритма на C. Например, пусть это будет рекурсивная быстрая сортировка, которую я нашел в книге К.Н. Кинга "Программирование на C: современный подход, 2-е издание", которую можно найти зд…
18 июн '14 в 11:25
1 ответ

/usr/include/arpa/inet.h:35:27: Ошибка разбора в Splint

При проверке моего кода с помощью шины возникла одна проблема. Сначала я получил ошибку на POSIXLIB. Поэтому я запускаю шину с +posixlib следующим образом: splint mss_client_main.c +posixlib -I ../include/ Но я получил следующую ошибку: Шина 3.1.1 -…
14 янв '12 в 14:46
2 ответа

В чем смысл этого предупреждения о шине и что я могу делать неправильно?

Это строка кода: bool cpfs_utimens(struct Cpfs *, char const *path, struct timespec const[2]); Запуск шины 3.1.2 создает это предупреждение: cpfs.h:21:74: Function parameter times declared as manifest array (size constant is meaningless) A formal pa…
07 сен '10 в 03:31
3 ответа

Ошибка шины в коде, который включает complex.h

Я пытаюсь бежать splint на источнике C, который включает в себя complex.h из стандартной библиотеки C для поддержки сложной арифметики. К несчастью, splint терпит неудачу со следующей ошибкой. Шина 3.1.2 --- 03 мая 2009 /usr/include/bits/cmathcalls.…
29 июн '10 в 19:32
0 ответов

Использование двоичных констант (префикс 0b) в коде, обработанном Splint

Согласно веб-сайту GCC и Руководству SDCC§3.5.5 , и GCC, и SDCC допускают использование двоичных констант, таких как эта, где представлено десятичное число 2: 0b0010 К сожалению, splint, кажется, не справляется с этим хорошо, что приводит к ошибке р…
19 окт '16 в 20:34
1 ответ

Как устранить ошибку разбора в Splint

Splint не продолжает проверку после обнаружения ошибок разбора. Я пробовал с опцией +trytorecover, но без изменений. Пожалуйста, дайте мне знать, как использовать +trytorecover, чтобы Splint попытался продолжить работу после ошибки разбора. Вот что …
24 авг '10 в 11:22
1 ответ

Как вставить Splint в Makefile?

Я хотел бы настроить свой проект, чтобы использовать Splint для анализа различных компонентов. Как добавить командную строку в мой Makefile, таким образом, он спросит, хочу ли я выполнить анализ с помощью Splint или просто скомпилировать программу н…
27 апр '15 в 10:15
2 ответа

C: Предупреждения, связанные с шинами. Что они значат?

Следующий код компилируется и выполняется без каких-либо предупреждений или ошибок. Тем не менее, когда я использую шину для анализа кода, он показывает 4 предупреждения (показано под кодом). Большинство примеров, которые я видел (с такими предупреж…
01 апр '14 в 04:52
1 ответ

Splint: заменить нестандартный тип `bit` на`unsigned char`

(Это продолжение моего предыдущего вопроса). Я использую Splint в Windows CLI. Встроенный компилятор C XC8 имеет пользовательский тип bit, Чтобы проанализировать Splint, я могу передать ему параметр CLI: -Dbit=char Однако мне нужно это заменить bit …
24 фев '14 в 12:40
1 ответ

Splint: локальная переменная, используемая до определения

Я знаю, что локальные переменные могут иметь "случайное" значение, когда они не установлены, но плохо ли устанавливать первое значение локальной переменной с помощью указателя? Например: void setValue(int* p_val) { *p_val = …; /* Assignment does not…
01 дек '17 в 13:15
1 ответ

Как вернуть указатель памяти из аргумента для применения к шине

Я столкнулся с проблемой использования шины. Вот похожий код #include <stdio.h> #include <stdlib.h> static void getMem(/*@null@*/void **out, size_t size) { if(out == NULL) return; *out = malloc(size); } int main(/*@unused@*/int argc, /*@…
27 янв '14 в 02:39
3 ответа

Предупреждение о шине "Оператор не имеет эффекта" из-за указателя функции

Я пытаюсь проверить программу на C с помощью Splint (в строгом режиме). Я аннотировал исходный код семантическими комментариями, чтобы помочь Splint понять мою программу. Все было хорошо, но я просто не могу избавиться от предупреждения: Оператор не…
20 апр '11 в 08:55
1 ответ

Нечетное поведение при проверке шин

Есть ли тут эксперты по шинам?? Я пытаюсь использовать splint для статического анализа большого проекта, который у меня есть в C. Я вижу избыточное количество ошибок проверки границ, которые явно не являются ошибками границ. Я написал небольшую тест…
22 ноя '11 в 23:09