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

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

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

V533. It is possible that a wrong variable is incremented inside the 'for' operator. Consider inspecting 'X'.


Doom 3

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'j'. idLib surface_polytope.cpp 65


void idSurface_Polytope::FromPlanes(....)
{
  ....
  for ( j = 0; j < w.GetNumPoints(); j++ ) {
    for ( k = 0; k < verts.Num(); j++ ) {
      if ( verts[k].xyz.Compare(w[j].ToVec3(),
                                POLYTOPE_VERTEX_EPSILON ) ) {
        break;
      }
    }
    ....
  }
  ....
}

This is what should have been written here: for ( k = 0; k < verts.Num(); k++ ).


Simple DirectMedia Layer

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. testshape testshape.c 130


int main(int argc,char** argv)
{
  ....
  for(i=0;i<num_pictures;i++) {
    pictures[i].texture = SDL_CreateTextureFromSurface(....);
    if(pictures[i].texture == NULL) {
      j = 0;
      for(j=0;j<num_pictures;i++)                      // <=
        if(pictures[i].texture != NULL)
          SDL_DestroyTexture(pictures[i].texture);
      for(i=0;i<num_pictures;i++)
        SDL_FreeSurface(pictures[i].surface);
      ....
    }
  }
  ....
}

Godot Engine

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. scene_preloader.cpp 410


Dictionary ScenePreloader::_get_bundled_scene() const
{
  ....
  Vector<int> rconns;
  ....
  for(int i=0;i<connections.size();i++)
  {
    ....
    for(int j=0;j<cd.binds.size();i++)
      rconns.push_back(cd.binds[j]);
  }
  ....
}

Unreal Engine 4

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'LineIdx'. internationalizationexportcommandlet.cpp 661


bool FPortableObjectFormatDOM::FromString( const FString& InStr )
{
  ....
  for( uint32 NextLineIdx = LineIdx + 1;    // <=
       NextLineIdx < NumFileLines &&
       LinesToProcess[NextLineIdx].Trim().TrimTrailing()....;
       ++LineIdx )                          // <=
  {
    ....
  }
  ....
}

This is what should have been written here: ++NextLineIdx.


Open X-Ray Engine

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. mxqmetric.cpp 76


MxMatrix& MxQuadric::homogeneous(MxMatrix& H) const
{
  ....
  unsigned int i, j;

  for(i=0; i<A.dim(); i++)  for(j=0; j<A.dim(); i++)
    H(i,j) = A(i,j);
  ....
}

LibreOffice

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. javatypemaker.cxx 602


void printConstructors(....)
{
  ....
  for (std::vector<
                   unoidl::SingleInterfaceBasedServiceEntity::Constructor::
                   Parameter >::const_iterator j(i->parameters.begin());
                   j != i->parameters.end(); ++i)
  {
      o << ", ";
      printType(o, options, manager, j->type, false);
      if (j->rest) {
          o << "...";
      }
      o << ' '
        << codemaker::java::translateUnoToJavaIdentifier(
            u2b(j->name), "param");
  }
  ....
}

GTK

V533 [CWE-691] It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'i'. gskvulkanimage.c 721


void
gsk_vulkan_image_upload_regions (GskVulkanImage    *self,
                                 GskVulkanUploader *uploader,
                                 guint              num_regions,
                                 GskImageRegion    *regions)
{
  ....
  for (int i = 0; i < num_regions; i++)
    {
      m = mem + offset;
      if (regions[i].stride == regions[i].width * 4)
        {
          memcpy (m, regions[i].data, regions[i].stride * regions[i].height);
        }
      else
        {
          for (gsize r = 0; r < regions[i].height; i++)
            memcpy (m + r * regions[i].width * 4,
                    regions[i].data + r * regions[i].stride,
                    regions[i].width * 4);
        }
      ....
    }
  ....
}

Chromium

V533 It is likely that a wrong variable is being incremented inside the 'for' operator. Consider reviewing 'it'. tree_synchronizer.cc 143


template <typename Iterator>
static void PushLayerPropertiesInternal(Iterator source_layers_begin,
                                        Iterator source_layers_end,
                                        LayerTreeHost* host_tree,
                                        LayerTreeImpl* target_impl_tree)
{
  for (Iterator it = source_layers_begin; it != source_layers_end; ++it)
  {
    auto* source_layer = *it;
    ....
    if (!target_layer) {
      bool host_set_on_source =
        source_layer->layer_tree_host() == host_tree;

      bool source_found_by_iterator = false;
      for (auto host_tree_it = host_tree->begin();
           host_tree_it != host_tree->end(); ++it)    // <=
      {
        if (*host_tree_it == source_layer)
        {
          source_found_by_iterator = true;
          break;
        }
      }
      ....
    }
    ....
  }
}