Falhas do tipo CWE-761
2 resultadosLiberação de ponteiro não alinhado ao início do buffer
A fraqueza ocorre quando o código libera (free) um ponteiro que aponta para o meio ou para qualquer posição que não seja o início de um buffer alocado dinamicamente. Isso causa corrupção de heap, pois o alocador não consegue rastrear corretamente qual bloco desalocar, levando a crashes ou execução de código arbitrário.
Um desenvolvedor aloca um buffer de 100 bytes com malloc(), depois incrementa o ponteiro em 10 posições para processar dados (char *p = buffer + 10), e ao final chama free(p). O alocador tenta liberar do offset +10, não do início, corrompendo suas estruturas internas de controle de memória.
Sempre libere o ponteiro original, mantendo-o separado de iteradores ou cópias deslocadas. Use padrões como armazenar o ponteiro base em uma variável constante e usar um ponteiro de trabalho para navegação, garantindo que apenas o original seja passado ao free().