0

我需要获取与特定结构套接字关联的结构文件。我在内核源代码中看到,在socket.c文件中,存在函数struct socket * sockfd_lookup(int fd,int * err),它给出一个fd返回此fd所属的套接字。有什么办法可以做相反的事情吗?我的意思是采取结构套接字的FD。我需要在可加载的内核模块中执行此操作。从内核空间中的给定struct套接字获取struct文件

谢谢

回答

1

套接字结构具有一个指向其文件struct的成员。请参阅linux/net.h结构套接字定义

2

是否的struct socketfile成员不抱你在找什么?

+0

不幸的是它是NULL。我从内核调用int security_socket_post_create(struct socket * sock,int family,int type,int protocol,int kern)获得struct socket。它在int sock_create(int family,int type,int protocol,struct socket ** res)调用出口之前被调用。 – Panos

+0

我明白了。不幸的是你的问题不是很好 - 在sock_map_fd()/ sock_alloc_file()调用分配一个文件之前,security_socket_post_create()挂钩在sock_create()中被调用。所以在这个安全钩子中,没有与套接字关联的文件。 – Roland

相关问题