From a487c5e3d4993c047ca4812403b1213a844c022d Mon Sep 17 00:00:00 2001 From: eason Date: Mon, 22 Feb 2021 16:27:16 +0800 Subject: [PATCH 1/2] fix system crash when socket accept connection --- components/net/sal_socket/socket/net_sockets.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c index 50f1446b0b..1c63b1bf04 100644 --- a/components/net/sal_socket/socket/net_sockets.c +++ b/components/net/sal_socket/socket/net_sockets.c @@ -41,8 +41,22 @@ int accept(int s, struct sockaddr *addr, socklen_t *addrlen) if(d) { /* this is a socket fd */ + d->fnode = (struct dfs_fnode *)rt_malloc(sizeof(struct dfs_fnode)); + if (!d->fnode) + { + /* release fd */ + fd_release(fd); + rt_set_errno(-ENOMEM); + return -1; + } + rt_memset(d->fnode, 0, sizeof(struct dfs_fnode)); + rt_list_init(&d->fnode->list); + d->fnode->type = FT_SOCKET; d->fnode->path = NULL; + d->fnode->fullpath = NULL; + d->fnode->ref_count = 1; + d->fnode->fops = dfs_net_get_fops(); -- Gitee From 58669ff46df2cf5b31067ebb9cf427fcb7dfc6bf Mon Sep 17 00:00:00 2001 From: eason Date: Mon, 22 Feb 2021 17:57:10 +0800 Subject: [PATCH 2/2] remove blank lines --- components/net/sal_socket/socket/net_sockets.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c index 1c63b1bf04..6fa8569a66 100644 --- a/components/net/sal_socket/socket/net_sockets.c +++ b/components/net/sal_socket/socket/net_sockets.c @@ -56,10 +56,7 @@ int accept(int s, struct sockaddr *addr, socklen_t *addrlen) d->fnode->path = NULL; d->fnode->fullpath = NULL; d->fnode->ref_count = 1; - - d->fnode->fops = dfs_net_get_fops(); - d->fnode->flags = O_RDWR; /* set flags as read and write */ d->fnode->size = 0; d->pos = 0; -- Gitee