All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sonar-plugins.cxx.sonar-cxx-plugin.0.9.source-code.valgrind.xml Maven / Gradle / Ivy

<rules>
  <rule>
    <key>InvalidFree</key>
    <name>Invalid free</name>
    <configKey>InvalidFree</configKey>
    <description>
      Calling free with the given address is illegal. This usually means
      that the block is already freed or that the block has never been
      allocated on the heap.
    </description>
  </rule>
  <rule>
    <key>MismatchedFree</key>
    <name>Mismatched free() / delete / delete []</name>
    <configKey>MismatchedFree</configKey>
    <description>
      Wrong deallocation function used to deallocate an allocated
      block. C++ rules are:
      - deallocate with 'free' when allocated with 'malloc', 'calloc',
      'realloc', 'valloc' or 'memalign'
      - deallocate with 'delete' when allocated with 'new'
      - deallocate with 'delete []' when allocated with 'new []'
    </description>
  </rule>
  
  <rule>
    <key>InvalidRead</key>
    <name>Invalid read</name>
    <configKey>InvalidRead</configKey>
    <description>
      This happens when your program reads memory at a place which
      Memcheck reckons it shouldn't. The reasons include reading memory which
      isn't mapped, reading already freed memory etc.
    </description>
  </rule>
  
  <rule>
    <key>InvalidWrite</key>
    <name>Invalid write</name>
    <configKey>InvalidWrite</configKey>
    <description>
      This happens when your program writes memory at a place which
      Memcheck reckons it shouldn't. The reasons include writing to memory
      which isn't mapped, writing to already freed memory, writing to
      read-only memory etc.
    </description>
  </rule>
  
  <rule>
    <key>InvalidJump</key>
    <name>Invalid jump or move</name>
    <configKey>InvalidJump</configKey>
    <description>
      The program tried to jump or move to an invalid address.
    </description>
  </rule>
  
  <rule>
    <key>Overlap</key>
    <name>Overlap of source and destination memory blocks</name>
    <configKey>Overlap</configKey>
    <description>
      The following C library functions copy some data from one memory
      block to another (or something similar): memcpy, strcpy, strncpy,
      strcat, strncat. The blocks pointed to by their 'src' and 'dst' pointers
      aren't allowed to overlap.
    </description>
  </rule>

  <rule>
    <key>InvalidMemPool</key>
    <name>Invalid memory pool</name>
    <configKey>InvalidMemPool</configKey>
    <description>
      Invalid memory pool specified in client request.
    </description>
  </rule>
  
  <rule>
    <key>UninitCondition</key>
    <name>Condition depends on undefined value</name>
    <configKey>UninitCondition</configKey>
    <description>
      Programs behavior relies on a variable whose value is not initialized,
      i.e. the program has undefined behavior.
    </description>
  </rule>
  
  <rule>
    <key>UninitValue</key>
    <name>Use of undefined value</name>
    <configKey>UninitValue</configKey>
    <description>
      Other uses of undefined values (primarily memory addresses).
    </description>
  </rule>
  
  <rule>
    <key>SyscallParam</key>
    <name>Invalid system call parameter</name>
    <configKey>SyscallParam</configKey>
    <description>
      A system call has been passed an 'out' or 'in' buffer which
      either isn't fully addressable or hasn't been properly initialized.
    </description>
  </rule>
  
  <rule>
    <key>ClientCheck</key>
    <name>Error in client request</name>
    <configKey>ClientCheck</configKey>
    <description>
      "Error" resulting from a client check request.
    </description>
  </rule>
  
  <rule>
    <key>Leak_DefinitelyLost</key>
    <name>Memory leak (definitely lost)</name>
    <configKey>Leak_DefinitelyLost</configKey>
    <description>
      Memory block which was unfreed at programs exit and for which
      no pointer pointing at it could be found.  Such blocks are
      classified as "lost", because the programmer could not possibly have
      freed it at program exit, since no pointer to it exists. This is
      likely a symptom of having lost the pointer at some earlier point in
      the program. Such cases should be fixed by the programmer.
    </description>
  </rule>

  <rule>
    <key>Leak_IndirectlyLost</key>
    <name>Memory leak (indirectly lost)</name>
    <configKey>Leak_IndirectlyLost</configKey>
    <description>
      This means that the block is lost, not because there are no
      pointers to it, but rather because all the blocks that point to it are
      themselves lost. For example, if you have a binary tree and the root
      node is lost, all its children nodes will be indirectly lost.
    </description>
  </rule>

  <rule>
    <key>Leak_PossiblyLost</key>
    <name>Memory leak (possibly lost)</name>
    <configKey>Leak_PossiblyLost</configKey>
    <description>
      This means that a chain of one or more pointers to a block
      has been found, but at least one of the pointers is an
      interior-pointer. This could just be a random value in memory that
      happens to point into a block, and so you shouldn't consider this OK
      unless you know you have interior-pointers.
    </description>
  </rule>

  <rule>
    <key>Leak_StillReachable</key>
    <name>Memory leak (still reachable)</name>
    <configKey>Leak_StillReachable</configKey>
    <description>
      Blocks of memory which weren't lost (pointers pointing to them existed)
      but also weren't freed at process' exit. Since the block are pointed at,
      the programmer could, at least in principle, have freed it before
      the exit.
    </description>
  </rule>
</rules>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy