fix: dyload open close failed
本次提交修复内核加载器,异常情况分支的一个bug:mksh通过exec命令(mksh内置命令 ,正常情况下,该命令成功执行会复用mksh进程空间,拉起新的指定进程)。但是如果 进程没有成功加载的情况下,内核加载器的异常分支会错误释放mksh的fd句柄。最终导致 下次拉起其他进程时(fork + exec方式),新的进程会继承fd,映射了早就释放的sysfd ,此时的sysfd可能已经被复用,issue场景下这个sysfd被加载过程中打开的libc.so占用 ,exec时会释放procfd->sysfd(错误的映射关系),最终新进程libc.so被关闭。 导致内核崩溃。 close #I452Z7 Signed-off-by: Guangyao Ma <guangyao.ma@outlook.com> Change-Id: Ifca809f88b5ffcfb879dc5520d1f6adf5cf92bcd
This commit is contained in:
@@ -89,7 +89,7 @@ typedef struct {
|
||||
LD_ELF_EHDR elfEhdr;
|
||||
LD_ELF_PHDR *elfPhdr;
|
||||
UINT32 fileLen;
|
||||
INT32 fd;
|
||||
INT32 procfd;
|
||||
} ELFInfo;
|
||||
|
||||
typedef struct {
|
||||
|
||||
Reference in New Issue
Block a user