2012-03-15 45 views
4

我假设内核恐慌或者可能会发生相当灾难性的情况,但是否则NETLINK套接字上的send或recv可能会出错?可以读取/写入NETLINK套接字失败吗?

+0

通常,系统调用会执行大量检查。如果您发送内核恐慌从发送netlink消息,这是一个严重的错误,至少是本地拒绝服务,并可能存在安全漏洞。 – nos 2012-03-15 10:18:48

回答

2

假设一个AF_NETLINK插座的一点是与内核进行通信,它肯定能够是在理论上send调用失败,因为内核将检查数据被交给它,并可以决定所述数据是废话,并拒绝send(与任何errno它喜欢)。

实际上,由于您提供了数据指针,因此您可以提供一个无效指针(与任何sendrecv调用一样)并立即得到EFAULT错误。

只要recv缓冲区有效并且足够大,recv一般不应该失败(除了像EINTR之类的东西)。

我想你可以用更具体的代码得到更具体的答案。

相关问题