diff options
author | Hanhui <hanhui@acoinfo.com> | 2020-08-17 12:18:20 (GMT) |
---|---|---|
committer | Hanhui <hanhui@acoinfo.com> | 2020-08-17 12:18:20 (GMT) |
commit | f0a81910d7f7ee9e4dbf7cd0e2d29d1ab33910f8 (patch) | |
tree | 7d10f73530d317d8d18fba31eeadf1c6c20adc51 /SylixOS | |
parent | 7e21b747d60b8a1cb79424787b06092542d2b6ff (diff) | |
download | libsylixos-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.c | 10 |
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 */ |