Please explain me reason of crash. I have 3rd party code which unexpectedly crashes with EXC_BAD_ACCESS
static int overwrite_selector(struct srm_target *srm, MARFileRemoverProgressBlock progressBlock)
{
srm->buffer = (unsigned char *)alloca(srm->buffer_size);
if(overwrite_byte(srm, 1, 0xF6, progressBlock) < 0) return -1;
return 0;
}
static int overwrite_byte(struct srm_target *srm, const int pass, const int byte, MARFileRemoverProgressBlock progressBlock)
{
memset(srm->buffer, byte, srm->buffer_size);
return overwrite(srm, pass, progressBlock);
}
Crash occurs on line memset(srm->buffer, byte, srm->buffer_size); So seems problem with allocation memory for srm->buffer. But if I replace alloca to malloc then all is ok (no crash).
I develop on osx 10.9 ARC enabled
I noticed bit Apple specific: crash occurs if I run code in global queue but if on main queue all is ok.