sal socket申请了资源,但lwip申请失败后,sal的资源没在释放。

发布于 2019-12-02 08:59:42
int sal_socket(int domain, int type, int protocol)
{
int retval;
int socket, proto_socket;
struct sal_socket *sock;
struct sal_proto_family *pf;

/* allocate a new socket and registered socket options */
//申请了资源
socket = socket_new();

if (socket < 0)
{
return -1;
}

/* get sal socket object by socket descriptor */
sock = sal_get_socket(socket);
if (sock == RT_NULL)
{
//没有释放就退出了。
return -1;
}

/* Initialize sal socket object */
retval = socket_init(domain, type, protocol, &sock);
if (retval < 0)
{
LOG_E("SAL socket protocol family input failed, return error %d.", retval);
//没有释放就退出了。
return -1;
}

/* valid the network interface socket opreation */
SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, socket);

proto_socket = pf->skt_ops->socket(domain, type, protocol);
if (proto_socket >= 0)
{
#ifdef SAL_USING_TLS
if (SAL_SOCKOPS_PROTO_TLS_VALID(sock, socket))
{
sock->user_data_tls = proto_tls->ops->socket(socket);
if (sock->user_data_tls == RT_NULL)
{
//没有释放就退出了。
return -1;
}
}
#endif
sock->user_data = (void *) proto_socket;
return sock->socket;
}
//没有释放就退出了。
return -1;
}



查看更多

关注者
0
被浏览
564
2 个回答
hzhmcu
hzhmcu 2019-12-03
你们在使用SAL组件时,不会出现这个问题吗?
353896039
353896039 2019-12-03
我感觉你说的好像是对的,但是我水平有限,无法深入探讨

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览