Error: calloc-overflow
Error de AddressSanitizer: calloc-overflow
La función CRT calloc
crea una matriz en memoria con elementos inicializados en 0. Los argumentos pueden crear un error interno que conduce a un puntero NULL como valor devuelto.
Ejemplo
// example1.cpp
// calloc-overflow error
#include <stdio.h>
#include <stdlib.h>
int number = -1;
int element_size = 1000;
int main() {
void *p = calloc(number, element_size); // Boom!
printf("calloc returned: %zu\n", (size_t)p);
return 0;
}
Para compilar y probar este ejemplo, ejecute estos comandos en un símbolo del sistema para desarrolladores de Visual Studio 2019 versión 16.9 o posterior:
cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe
Error resultante
Consulte también
Introducción a AddressSanitizer
Problemas conocidos de AddressSanitizer
Referencia de lenguaje y compilación de AddressSanitizer
Referencia del entorno de ejecución addressSanitizer
Bytes de sombra addressSanitizer
Pruebas distribuidas o en la nube addressSanitizer
Integración del depurador AddressSanitizer
Ejemplos de errores addressSanitizer