Comments 24
А багрепорт уже создан? Интересно было бы посмотреть: исправят?
0
А сколько стоит лицензия?
About $60 for a developer per month
About $30 for a developer per month
Сколько будет стоить лицензия, чтобы поставить на билд-сервер, чтобы проверял автоматом после каждого пуша? 2,5 разработчика в команде, Qt, Linux.
0
Сразу отмечу, что мы не продаём лицензии для отдельных людей/серверов. Для маленьких команд (2,5 разработчика) можно использовать бесплатный вариант лицензирования. Если такой вариант не подходит для проекта, то предлагаем обсудить возможные варианты лицензирования в индивидуальном порядке.
+2
Спасибо, попробую бесплатный вариант.
Мы не отдельные люди-серверы, у нас довольно большое предприятие, но именно на С++ разрабатывают 2,5 человека.
И не зная цен сложно убеждать начальство выделить деньги на лицензию.
0
UFO just landed and posted this here
Мы уже пробовали, но у нас не получилось. Сейчас мы рассматриваем PVS-Studio как B2B решение.
+3
UFO just landed and posted this here
Почему существует только x64 версия PVS-Studio?
Занимаюсь embedded, для чего вполне хватает 4-ядерного AMD
Занимаюсь embedded, для чего вполне хватает 4-ядерного AMD
0
Спасибо за проверку Qt!
Дефект N74 — вроде бы всё ок, почему анализатор ругается?
Как раз таки вызывается FormatMessageW и передаётся указатель на message.
Флаг FORMAT_MESSAGE_ALLOCATE_BUFFER говорит что message нужно инициализировать.
Вроде всё просто же?
Дефект N74 — вроде бы всё ок, почему анализатор ругается?
TCHAR *message = nullptr;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL, DWORD(comError.Error()), MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),
message, 0, NULL);
Как раз таки вызывается FormatMessageW и передаётся указатель на message.
Флаг FORMAT_MESSAGE_ALLOCATE_BUFFER говорит что message нужно инициализировать.
Вроде всё просто же?
0
Насчет FormatMessage(). Как написано в описании флага FORMAT_MESSAGE_ALLOCATE_BUFFER в этом случае нужно передавать не адрес буфера, а адрес указателя, куда будет помещен адрес буфера. Т.е. нужно передавать не message, а (LPTSTR)&message. В этом ошибка.
+1
Qt вообще очень любят повсюду ставить инты (дефекты 94 и 95), по крайне непонятной причине…
0
Всегда было интересно, как работает проверка на «identical subexpressions»? Явно же не простым текстовым сравнением. Небось SMT solver'ы используете?
0
OpenJDK будете перепроверять?
0
Интересно, если посмотреть в тот же qimagescale.cpp, то там гораздо больше примеров V668, но PVS Studio на них не срабатывает. Дело в том, что проверка на nullptr после new происходит на сразу после new, а в коде вызывающем функцию, которая делает new а потом возвращает этот указатель. В общем, фич-реквест в PVS Stuido — научиться анализировать call stack для V668.
0
Кстати, Дефект N94 не является дефектом. Индекс действительно может быть отрицательным. И массив, в котором лезут в отрицательный элемент, на самом деле не массив, а наследник вектора, который перегружает operator[] чтобы обрабатывать этот случай.
Отрицательный индекс сигнала означает «все сигналы» что бы это ни значило…
Другой дело, что код запутанный выходит.
Отрицательный индекс сигнала означает «все сигналы» что бы это ни значило…
Другой дело, что код запутанный выходит.
0
Дефект N13 — не то чтобы совсем дефект, скорее выбор программиста, который писал код или может код ревью делал
Из документации qstrlen:
A safe strlen() function.
Returns the number of characters that precede the terminating '\0', or 0 if str is nullptr.
На всякий случай посмотрел определение функции:
inline uint qstrlen(const char *str)
{ return str ? uint(strlen(str)) : 0; }
0
Sign up to leave a comment.
Третья проверка Qt 5 с помощью PVS-Studio