Weaknesses of type CWE-761
2 resultsLiberação de ponteiro não apontando para o início do buffer
Ocorre quando o código libera (free) um ponteiro que não aponta para o endereço inicial de um bloco de memória alocado. O alocador espera receber sempre o endereço exato do malloc/calloc, e tentar liberar um endereço intermediário corrompe as estruturas internas do heap e causa crash ou exploração.
Um buffer foi alocado com malloc(100), mas o código incrementou o ponteiro em aritmética (ptr += 10) e depois tentou free(ptr). O alocador não consegue rastrear o bloco original e libera metadados errados, corrompendo a memória.
Mantenha sempre uma cópia do ponteiro original antes de manipulações aritméticas; libere apenas o ponteiro original. Use static analysis ou ferramentas como Valgrind em testes para detectar mismatches entre alocação e liberação.