Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
table[(int)text[i]]++;
, text это указатель на знаковый тип char, который может принимать отрицательные значения. Если text содержит отрицательные числа, то у нас будет доступ к памяти перед массивом table, а т.е. table лежит в стеке — мы имеем классическое переполнение стекового буфера с возможностью перезаписи адреса возврата.table[((unsigned char*)text)[i]]++;
char* text;
int text_length;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &text, &text_lenght) == FAILURE) {
return;
}
Пишем PHP extension