summaryrefslogtreecommitdiffstatsabout
path: root/SylixOS
diff options
context:
space:
mode:
authorHanhui <hanhui@acoinfo.com>2020-08-17 12:18:20 (GMT)
committer Hanhui <hanhui@acoinfo.com>2020-08-17 12:18:20 (GMT)
commitf0a81910d7f7ee9e4dbf7cd0e2d29d1ab33910f8 (patch)
tree7d10f73530d317d8d18fba31eeadf1c6c20adc51 /SylixOS
parent7e21b747d60b8a1cb79424787b06092542d2b6ff (diff)
downloadlibsylixos-f0a81910d7f7ee9e4dbf7cd0e2d29d1ab33910f8.zip
libsylixos-f0a81910d7f7ee9e4dbf7cd0e2d29d1ab33910f8.tar.gz
libsylixos-f0a81910d7f7ee9e4dbf7cd0e2d29d1ab33910f8.tar.bz2
Fixed transfer file descriptors between threads in same process bug.
Diffstat (limited to 'SylixOS')
-rw-r--r--SylixOS/net/lwip/unix/af_unix_msg.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/SylixOS/net/lwip/unix/af_unix_msg.c b/SylixOS/net/lwip/unix/af_unix_msg.c
index 2f38f27..0ea9bf9 100644
--- a/SylixOS/net/lwip/unix/af_unix_msg.c
+++ b/SylixOS/net/lwip/unix/af_unix_msg.c
@@ -21,6 +21,7 @@
** BUG:
2013.11.18 加入对 MSG_CMSG_CLOEXEC 支持.
2018.07.10 传递文件描述符前, 需要检测文件描述符有效性.
+2020.08.17 修正同进程文件描述符传递引用错误.
*********************************************************************************************************/
#define __SYLIXOS_KERNEL
#include "SylixOS.h"
@@ -54,13 +55,8 @@ static INT __unix_dup (pid_t pidSend, INT iFdSend)
return (PX_ERROR);
}
- if (pidSend == __PROC_GET_PID_CUR()) {
- iDup = dup(iFdSend); /* 同一个进程中 dup 一次 */
-
- } else {
- iDup = vprocIoFileDupFrom(pidSend, iFdSend); /* 从发送进程 dup 到本进程 */
- vprocIoFileRefDecByPid(pidSend, iFdSend); /* 减少发送进程对于此文件的引用*/
- }
+ iDup = vprocIoFileDupFrom(pidSend, iFdSend); /* 从发送进程 dup 到本进程 */
+ vprocIoFileRefDecByPid(pidSend, iFdSend); /* 减少发送进程对于此文件的引用*/
#else
iDup = dup(iFdSend); /* 内核中做一次 dup */