安全处理驱动程序中的用户空间指针?

时间:2017-11-15 11:14:50

标签: c linux-kernel

我正在编写一个需要向用户空间读写数据的ioctl驱动程序。对于可视化,这是驱动程序调用中的典型参数:

typedef struct {
unsigned int* src;
unsigned int* dst;
unsigned int buffer_size;
unsigned int key[8];
} aes_data

我对虚拟内存的运作方式并不十分熟悉,但我认为这里存在风险。用户空间进程可以提供指向它不拥有的内存的指针。提供的缓冲区大小也可能导致其他进程的内存溢出。如何在驱动程序中负责任地处理这些用户空间指针?

1 个答案:

答案 0 :(得分:1)

  

如何在驱动程序中负责任地处理这些用户空间指针?

你不是因为没有办法检查指针是否指向任何有效的东西。由ioctl()的用户提供适当的参数。如果他们不这样做,那么他们就要运气不好。