Skip to content

Commit 0f6586c

Browse files
committed
优化at_socket内存泄露的修改
1 parent b9d24af commit 0f6586c

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

components/net/at/at_socket/at_socket.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,15 @@ struct at_socket *at_get_socket(int socket)
7979
}
8080

8181
/* get a block to the AT socket receive list*/
82-
static size_t at_recvpkt_put(rt_slist_t *rlist, const char *ptr, size_t length)
82+
static rt_err_t at_recvpkt_put(rt_slist_t *rlist, const char *ptr, size_t length)
8383
{
8484
at_recv_pkt_t pkt = RT_NULL;
8585

8686
pkt = (at_recv_pkt_t) rt_calloc(1, sizeof(struct at_recv_pkt));
8787
if (pkt == RT_NULL)
8888
{
8989
LOG_E("No memory for receive packet table!");
90-
return 0;
90+
return -RT_ENOMEM;
9191
}
9292

9393
pkt->bfsz_totle = length;
@@ -96,7 +96,7 @@ static size_t at_recvpkt_put(rt_slist_t *rlist, const char *ptr, size_t length)
9696

9797
rt_slist_append(rlist, &pkt->list);
9898

99-
return length;
99+
return RT_EOK;
100100
}
101101

102102
/* delete and free all receive buffer list */
@@ -652,15 +652,15 @@ static void at_recv_notice_cb(struct at_socket *sock, at_socket_evt_t event, con
652652
RT_ASSERT(event == AT_SOCKET_EVT_RECV);
653653

654654
/* check the socket object status */
655-
if (sock->magic != AT_SOCKET_MAGIC || sock->state != AT_SOCKET_CONNECT)
655+
if (sock->magic != AT_SOCKET_MAGIC || sock->state == AT_SOCKET_CLOSED)
656656
{
657657
rt_free((void *)buff);
658658
return;
659659
}
660660

661661
/* put receive buffer to receiver packet list */
662662
rt_mutex_take(sock->recv_lock, RT_WAITING_FOREVER);
663-
if (!at_recvpkt_put(&(sock->recvpkt_list), buff, bfsz))
663+
if (at_recvpkt_put(&(sock->recvpkt_list), buff, bfsz) != RT_EOK)
664664
{
665665
rt_free((void *)buff);
666666
rt_mutex_release(sock->recv_lock);

0 commit comments

Comments
 (0)