читал книгу Роберта Лава, главу 5 о системных вызовах, и нашел этот простой пример немного сомнительным:
asmlinkage long sys_silly_copy(unsigned long *src, unsigned long *dst, unsigned long len)
{
unsigned long buf;
if (copy_from_user(&buf, src, len))
return -EFAULT;
...
}
Как мы видим, 'buf' - это объект типа 'unsigned long', определенный в стеке ядра , т.е. его начальное значение скорее всего фигня. В любом случае, можно ли копировать байты len в стек, где находится buf, т.е. он может перезаписать что-нибудь полезное? Возможно, это подходит только для этого конкретного примера?