C 读/写NETLINK套接字是否会失败?
我假设可能会发生内核死机或类似灾难性事件,但NETLINK套接字上的发送或接收是否可能出错?鉴于C 读/写NETLINK套接字是否会失败?,c,linux,sockets,C,Linux,Sockets,我假设可能会发生内核死机或类似灾难性事件,但NETLINK套接字上的发送或接收是否可能出错?鉴于AF\u NETLINK套接字的目的是与内核通信,理论上send调用当然可能失败,因为内核将检查传递给它的数据,可以判断所说的数据是无意义的,并拒绝发送(有任何它喜欢的错误) 更实际地说,由于提供了数据指针,因此可以提供无效指针(与任何send或recv调用一样),并立即得到EFAULT错误 如果recv缓冲区有效且足够大,recv通常不会失败(类似EINTR的情况除外) 我想你可以用更具体的代码得到
AF\u NETLINK
套接字的目的是与内核通信,理论上send
调用当然可能失败,因为内核将检查传递给它的数据,可以判断所说的数据是无意义的,并拒绝发送
(有任何它喜欢的错误)
更实际地说,由于提供了数据指针,因此可以提供无效指针(与任何send
或recv
调用一样),并立即得到EFAULT
错误
如果recv
缓冲区有效且足够大,recv
通常不会失败(类似EINTR
的情况除外)
我想你可以用更具体的代码得到更具体的答案。通常,系统调用会进行广泛的检查。如果发送netlink消息导致内核死机,这是一个严重的错误,至少是本地拒绝服务,可能是一个安全漏洞。