metrica
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте папку
Spam/Junk и нажмите на письме кнопку "Не спам".
Так Вы не пропустите ответы от нашей команды.

Вебинар: Трудности при интеграции SAST, как с ними справляться - 04.04

>
>
>
Примеры ошибок, обнаруженных с помощью …

Примеры ошибок, обнаруженных с помощью диагностики V600

V600. The 'Foo' pointer is always not equal to NULL. Consider inspecting the condition.


Notepad++

V600 Consider inspecting the condition. The 'headerM' pointer is always not equal to NULL. notepadPlus printer.cpp 378


size_t Printer::doPrint(bool justDoIt)
{
  ....
  TCHAR headerM[headerSize] = TEXT("");
  ....
  if (headerM != '\0')
  {
  ....
}

Similar errors can be found in some other places:

  • V600 Consider inspecting the condition. The 'headerR' pointer is always not equal to NULL. notepadPlus printer.cpp 390

Notepad++

V600 Consider inspecting the condition. The 'mainVerStr' pointer is always not equal to NULL. Notepad++ nppbigswitch.cpp 938


LRESULT Notepad_plus::process(
  HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
  ....
  TCHAR mainVerStr[16];
  TCHAR auxVerStr[16];
  ....
  if (mainVerStr)
    mainVer = generic_atoi(mainVerStr);
  if (auxVerStr)
    auxVer = generic_atoi(auxVerStr);
  ....
}

Unnecessary checks.

Similar errors can be found in some other places:

  • V600 Consider inspecting the condition. The 'auxVerStr' pointer is always not equal to NULL. Notepad++ nppbigswitch.cpp 940
  • V600 Consider inspecting the condition. The 'intStr' pointer is always not equal to NULL. Notepad++ preferencedlg.cpp 1871
  • V600 Consider inspecting the condition. The 'intStr' pointer is always not equal to NULL. Notepad++ userdefinedialog.cpp 222
  • And 1 additional diagnostic messages.

OpenSSL

V600 Consider inspecting the condition. The 'dsa_c[i]' pointer is always not equal to NULL. speed.c 1486


int MAIN(int argc, char **argv)
{
  ....
  long dsa_c[DSA_NUM][2];
  ....
  if (dsa_c[i] == 0)
  {
    dsa_c[i][0]=1;
    dsa_c[i][1]=1;
  }
  ....
}

Most likely this is what should be written here: (dsa_c[i][0] == 0).

Similar errors can be found in some other places:

  • V600 Consider inspecting the condition. The 'ecdsa_c[i]' pointer is always not equal to NULL. speed.c 1506
  • V600 Consider inspecting the condition. The 'ecdsa_c[i]' pointer is always not equal to NULL. speed.c 1523
  • V600 Consider inspecting the condition. The 'ecdsa_c[i]' pointer is always not equal to NULL. speed.c 1540
  • And 3 additional diagnostic messages.

Multi Theft Auto

V600 Consider inspecting the condition. The 'szSerial' pointer is always not equal to NULL. cluafunctiondefs.player.cpp 508


int CLuaFunctionDefs::GetPlayerSerial ( lua_State* luaVM )
{
  char szSerial [ 64 ];
  g_pCore->GetNetwork()->GetSerial(szSerial, sizeof(szSerial));

  if ( szSerial )
  {
    lua_pushstring ( luaVM, szSerial );
    return 1;
  }

  lua_pushboolean ( luaVM, false );
  return 1;
}

Firebird

V600 Consider inspecting the condition. The 'dbb_file->fil_string' pointer is always not equal to NULL. sdw.cpp 961


class jrd_file : public pool_alloc_rpt<SCHAR, type_fil>
{
  ....
  SCHAR fil_string[1];
}

void SDW_start(....)
{
  ....
  if (dbb_file && dbb_file->fil_string &&
      expanded_name == dbb_file->fil_string)
  ....
}

ITK

V600 Consider inspecting the condition. The 'process_id' pointer is always not equal to NULL. itkmultithreaderwinthreads.cxx 90


void MultiThreader::MultipleMethodExecute()
{
  ....
  HANDLE process_id[ITK_MAX_THREADS];
  ....
  process_id[thread_loop] = (void *) _beginthreadex(0, 0, ....);

  if ( process_id == 0 )
  {
    itkExceptionMacro("Error in thread creation !!!");
  }
  ....
}

Most likely this is what should be written here: if ( process_id[thread_loop] == 0 )


FreeSWITCH

V600 Consider inspecting the condition. The 'name' pointer is always not equal to NULL. fsodbc.cpp 323


JS_ODBC_FUNCTION_IMPL(GetData)
{
  ....
  SQLCHAR name[1024] = "";                                  // <=
  SQLCHAR *data = _colbuf;
  SQLLEN pcbValue;

  SQLDescribeCol(_stmt, x, name, sizeof(name), ....);       // <=
  SQLGetData(_stmt, x, SQL_C_CHAR, _colbuf, _cblen, &pcbValue);

  if (name) {                                               // <=
    if (SQL_NULL_DATA == pcbValue) {
      arg->Set(String::NewFromUtf8(GetIsolate(),
        (const char *)name), Null(info.GetIsolate()));
    } else {
      arg->Set(String::NewFromUtf8(GetIsolate(),
        (const char *)name), String::NewFromUtf8(GetIsolate(),
        data ? (const char *)data : ""));
    }
  }
  ....
}