Hata: calloc-overflow
Adres Temizleme Hatası: calloc-overflow
CRT işlevi calloc
, 0 olarak başlatılan öğelerle bellekte bir dizi oluşturur. Bağımsız değişkenler, dönüş değeri olarak NULL işaretçisine yol açan bir iç hata oluşturabilir.
Örnek
// 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;
}
Bu örneği derlemek ve test etmek için visual studio 2019 sürüm 16.9 veya sonraki bir geliştirici komut isteminde şu komutları çalıştırın:
cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe
Sonuçta oluşan hata
Ayrıca bkz.
AddressSanitizer'a genel bakış
AddressSanitizer bilinen sorunları
AddressSanitizer derlemesi ve dil başvurusu
AddressSanitizer çalışma zamanı başvurusu
AddressSanitizer gölge baytları
AddressSanitizer bulut veya dağıtılmış test
AddressSanitizer hata ayıklayıcısı tümleştirmesi
AddressSanitizer hata örnekleri