Всем привет, и доброй ночи | дня | утра | вечера. Хочу понять... например, есть библиотека, в ней есть функция с прототипом:
read_data(void *data, size_t len);
Понятно, что data - указатель на данные, len - размер этих данных. Эта функция из библиотеки возможно будет вызываться из многих программ, и существует вероятность того, что len будет валидным, а вот data... data может быть указателем на память после mmap или ioctl+copy_to_user...
Проверка того, что data == NULL необходима или достаточна?
Как проверить, что память, на которую указывает data доступна для чтения в размере len? Говорят, что в оффтопике есть функция IsBadPtr, которая как раз и применяется для этого вопроса.