Comments 19
Шот мну не понялло — в прошлый же раз уже был FreeBSD. Свежедобавленное, или просто по мере обработки лога и сабмита фиксов?
0
Можно ли как-то помечать конкретную строчку или блок кода (в комментарии), чтобы убрать для них предупреждение? В блоке «Прочитали статью и есть вопрос?» ответа не нашёл.)
0
Да, можно. Есть несколько способов работы с ложными предупреждениями: Подавление ложных предупреждений. Ещё есть: Массовое подавление сообщений анализатора.
+1
Большое спасибо! Вспомнил, что я даже эту страницу читал, но совсем забыл… Избавился от одного предупреждения, которое сильно мозолило глаза.
И сразу есть вопрос, на этот раз с кодом:
V695 Range intersections are possible within conditional expressions. Example: if (A > 0 && A < 5) {… } else if (A > 3 && A < 9) {… }. Check lines: 39, 52. cyrillic.cpp 52
V695 Range intersections are possible within conditional expressions. Example: if (A > 0 && A < 5) {… } else if (A > 3 && A < 9) {… }. Check lines: 39, 54. cyrillic.cpp 54
И сам код, вызвавший предупреждение. В комментарии номер строки и числовое значение символа:
if( c >= L'а' && c <= L'я' ) /* 27 */ // 1072 — 1103
else if( c >= L'А' && c <= L'Я' ) /* 39 */ // 1040 — 1071
else if( c >= L'A' && c <= L'Z' ) /* 52 */ // 65 — 90
else if( c >= L'a' && c <= L'z' ) /* 54 */ // 97 -122
с — wchar_t из строки. 'A' русская и английская точно не перепутаны.
Не понимаю, почему подозрение на пересечение диапазонов?
И сразу есть вопрос, на этот раз с кодом:
V695 Range intersections are possible within conditional expressions. Example: if (A > 0 && A < 5) {… } else if (A > 3 && A < 9) {… }. Check lines: 39, 52. cyrillic.cpp 52
V695 Range intersections are possible within conditional expressions. Example: if (A > 0 && A < 5) {… } else if (A > 3 && A < 9) {… }. Check lines: 39, 54. cyrillic.cpp 54
И сам код, вызвавший предупреждение. В комментарии номер строки и числовое значение символа:
if( c >= L'а' && c <= L'я' ) /* 27 */ // 1072 — 1103
else if( c >= L'А' && c <= L'Я' ) /* 39 */ // 1040 — 1071
else if( c >= L'A' && c <= L'Z' ) /* 52 */ // 65 — 90
else if( c >= L'a' && c <= L'z' ) /* 54 */ // 97 -122
с — wchar_t из строки. 'A' русская и английская точно не перепутаны.
Не понимаю, почему подозрение на пересечение диапазонов?
+1
Я знаю в чём причина, но объяснять техническую особенность почему так происходит с русскими буквами долго и особого смысла нет. Попробуем подумать, как поправить. В данном случае пока придётся подавить ложное предупреждение одним из доступных способов. Просим прощения за недоработку.
+2
CWE-561 не является ошибкой. Если не определен INVARIANTS, то все пройдет как положено. Если же выполняется panic(), то вызывать SCTP_FREE() до нее, нецелесообразно, т.к. теряется возможность посмотреть содержимое структуры vrf.
0
Возможно. Но тогда это просто плохой код и было бы лучше написать что-то в духе:
#ifdef INVARIANTS
panic("No memory for VRF:%d", vrf_id);
#esle
SCTP_FREE(vrf, SCTP_M_VRF);
return (NULL);
#endif
0
Жалко, что вы на автогенерённые статьи перешли (выглядит так будто эта статья ботом писана). Вот случай номер пять — это просто восхитительно, просто чудо что такая ошибка нашлась, причём предупреждение напрямую с ней не связано. Когда мой продукт такое находит, я прыгаю от радости. Живой человеческий комментарий по этому поводу украсил бы статью. А так эта ошибка теряется в серой череде обычных. Чем автоматически дампить все скучные баги в статью, лучше расскажите по-человечески про пару интересных :-)
0
Полноценные статьи как писались, так и будут писаться. Например, скоро выйдут большие статьи про CryEngine5 и PascalABCNET. А это просто дополнительный эксперементальный пятничный формат, призванный показать, что мы осваиваем работу с проблемами безопасности (CWE). Я даже её просто в наш блог положил, так как понимаю, что статья весьма незатейлива и может быть интересна в основном нашим постоянным читателям, которым интересно узнать, что мы ещё этакое нашли.
+2
Уважаемый PVS-Studio, а вы не планируете предоставлять PVS-Studio как PVSSaaS по типу AppVeyor и подобных? И я бы с удовольствием бы нацепил на свои публичные репозитарии на GitHub ещё и ваш беджик :-):
+2
Релиз софта от NASA видели? Обпроверяться можно :)
0
Думаю, с подобными статьями не стоит частить на Хабре. Видимо иногда буду публиковать сразу некую подборку. А пока просто ссылка на продолжение сериала: Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N3.
+1
Sign up to leave a comment.
Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N3