Fehler: calloc-overflow
Adressbereinigungsfehler: Calloc-Overflow
Die CRT-Funktion calloc
erstellt ein Array im Arbeitsspeicher mit Elementen, die auf 0 initialisiert wurden. Die Argumente können einen internen Fehler erstellen, der zu einem NULL-Zeiger als Rückgabewert führt.
Beispiel
// 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;
}
Führen Sie zum Erstellen und Testen dieses Beispiels die folgenden Befehle in einer Visual Studio 2019,16.9- oder höher-Entwickler-Eingabeaufforderung aus:
cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe
Resultierender Fehler
Siehe auch
AddressSanitizer -Übersicht
Beheben bekannter Probleme mit demSanitizer
AddressSanitizer Build- und Sprachreferenz
AddressSanitizer-Laufzeitreferenz
AddressSanitizer-Schattenbytes
AddressSanitizer-Cloud oder verteilte Tests
AddressSanitizer Debugger-Integration
Beispiele für AddressSanitizer-Fehler