4
我假设内核恐慌或者可能会发生相当灾难性的情况,但是否则NETLINK套接字上的send或recv可能会出错?可以读取/写入NETLINK套接字失败吗?
我假设内核恐慌或者可能会发生相当灾难性的情况,但是否则NETLINK套接字上的send或recv可能会出错?可以读取/写入NETLINK套接字失败吗?
假设一个AF_NETLINK
插座的一点是与内核进行通信,它肯定能够是在理论上为send
调用失败,因为内核将检查数据被交给它,并可以决定所述数据是废话,并拒绝send
(与任何errno它喜欢)。
实际上,由于您提供了数据指针,因此您可以提供一个无效指针(与任何send
或recv
调用一样)并立即得到EFAULT
错误。
只要recv
缓冲区有效并且足够大,recv
一般不应该失败(除了像EINTR
之类的东西)。
我想你可以用更具体的代码得到更具体的答案。
通常,系统调用会执行大量检查。如果您发送内核恐慌从发送netlink消息,这是一个严重的错误,至少是本地拒绝服务,并可能存在安全漏洞。 – nos 2012-03-15 10:18:48