VirtualBox

vbox的更動 47102 路徑 trunk/src/VBox/Runtime/r3/posix


忽略:
時間撮記:
2013-7-11 下午03:45:20 (11 年 以前)
作者:
vboxsync
訊息:

Runtime: Missing checks for RTPROC_FLAGS_SAME_CONTRACT in the process creation code. Causes the child to end up with a different contract when forking a second time

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Runtime/r3/posix/process-creation-posix.cpp

    r44556 r47102  
    564564    {
    565565#ifdef RT_OS_SOLARIS
    566         int templateFd = rtSolarisContractPreFork();
    567         if (templateFd == -1)
    568             return VERR_OPEN_FAILED;
     566        if (!(fFlags & RTPROC_FLAGS_SAME_CONTRACT))
     567        {
     568            int templateFd = rtSolarisContractPreFork();
     569            if (templateFd == -1)
     570                return VERR_OPEN_FAILED;
     571        }
    569572#endif /* RT_OS_SOLARIS */
    570573        pid = fork();
     
    572575        {
    573576#ifdef RT_OS_SOLARIS
    574             rtSolarisContractPostForkChild(templateFd);
     577            if (!(fFlags & RTPROC_FLAGS_SAME_CONTRACT))
     578                rtSolarisContractPostForkChild(templateFd);
    575579#endif /* RT_OS_SOLARIS */
    576580            if (!(fFlags & RTPROC_FLAGS_DETACHED))
     
    659663        }
    660664#ifdef RT_OS_SOLARIS
    661         rtSolarisContractPostForkParent(templateFd, pid);
     665        if (!(fFlags & RTPROC_FLAGS_SAME_CONTRACT))
     666            rtSolarisContractPostForkParent(templateFd, pid);
    662667#endif /* RT_OS_SOLARIS */
    663668        if (pid > 0)
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette