From fb39a9f5576e7b476cdeac0894e68f2e04b14a47 Mon Sep 17 00:00:00 2001 From: Sergey Simonchik Date: Thu, 5 Oct 2017 11:28:24 +0300 Subject: [PATCH] runnerw: use GetLastError as exit code if CreateProcessW fails (IDEA-CR-25052) GetLastError returns error=2 if child process executable file not found (ERROR_FILE_NOT_FOUND from https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382) --- bin/win/runnerw.exe | Bin 119296 -> 119296 bytes native/runner/runnerw/runnerw.cpp | 6 ++++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/bin/win/runnerw.exe b/bin/win/runnerw.exe index 9df94ac5b9192053ed85ab0b36426a20417c853c..16bc0c9069ba43e6545c2e8a2c16c762c99fdc22 100644 GIT binary patch delta 4946 zcmY*d30#!b7Qc4{S(QaWfe>-aHNSmdW)Qbr0?~vLvqVKQGhZO))4@z!5F>9fHu5-58DkAU5iglNjS{=P3(q!QUExdi9CiJQATL-*_dsO8reH zIK$#v1w#q0*A3M>V%m*BgwnrBv?13oCf8(g=S+?m2i!@M6HM-?$rYL0=dF4s_o>N^ zNCK|Nd9E8xfSFp3P8xU$?R6!pj%8v$83$4Cw2@B-)BzzU4*#>9>cPBm6_jKkZE zvmKe9*EEFOnU~TNCfE?zx>Rr5@-8x&zzppA+UOJX1160pL4(0n1A^CLIAnQ9oLDEr z)Udz=8_H`sgh79)J6(YL1jRSGKECI6=dry&21avdHn}gjGoQLIOmyvmNydQC7(CZG zDs-9!uQfjF+!wEQ{?s`ULcuvOe1$jmaUP6%0pspQ`{={C)>#of*bB!S_hPw-_~)$1 z-79}QkOH%t1V{(`)3Ei}7}{tKqrq0>3+M_M=)B#d!Gc?ipL&mssHUtaZ%p6{OqW~h z51QATb`qT!db-l7^qGtCdFQ@oEnXHc!MGpGMtBLW8+8U!V0O;{`T`UK58N19Y7Un} zcM@<3(BRxN@I*T-7@0&xmw{nm{KK80dkmreUU_Cas=U&bYm6nMI(%e-Vc$@MAkL0B zv&dUG@-ispT}oN<#Qk=cr9Wq;WVqcdQ3YYqY%HLk4Lb+oloW`rQ2OVjHpx+=jE?a= zo!(!!g0GDlx+`8}JfvfSZU)1(I+(NFDW$m5*_)}e;Pp;l{3hVT&F zi9?c&PlwFKj1e7w5g#%h#EY=V;GrUzdgf3C`xx7Y>iC3lW9X+HPfy5eNP2PNgbX-# z`XS?^VQIMBunb><%bmHyFSf%m&dH+!FrMVh7=6kc?{qTbg4^R7V`%d7=;SmjdKHib zumhF@@&W4sn~j^v^Zfpt27Wo?lCUu*`57ZOWkz%+j4T2efI`4Fz^4Ew;E2=zrImgo z%ipx346o$WN^oXsWrpR}9~r*48tL-X$~<=o$o2sC15Ey48%*BBmu<9F=B$~zD?E5o zt`&U|dnA<iq)BmTe@+-!uDJ!4Ec5N=F3co+vd zL(0m1u;@H@G|eARck-ude6ipRJNLLfp6v{}+>9|?^XJ!n@kJx+-`6eo#yKZlKV!lB zodbR=!1$PP#HHanm503evC-7ddMhu3~V_S9i2$aiZgC7~Y9@ zlx+{kQ62HovWi~#PDf)-doSOX^r|mxQ2iXIX*?E>D~n=q7RI%XH7p+MV_a!*->V;3 z_8W`ad-uz|+~Piz;IyIo8FyOTdENi|biHnh$`62OG>DA5mYW9^oPg!( z0anN{gqTmC$NQYHc*nMA{TG_}U z_@bZv%qnZ^{+4_Xt=eiu3%6O(6*!HFo13jDt_V(BXGISHX464;*~bu$fE6WHbQN&C zP5)SxN5|AN=bLQ==$m{q>{Sae`J~L*Xv~|l%Qla}QPz&t{cY%{K{j+1fCrYH%*TcP zGQ658=5!0-RY2iBj0!iIbrzw&WP!j#p+Tq=#tZ)|E8DyQU$YP`G(wdOLbXtHbH*Z6 zJ`VU{7(D@uONvj*-ZbrxEj{POt!tT*gm(JfFDu=I8{1)rqj)nOjAuKlH{&Q=?6?iY z&kCL}o5K-OglRvo|9*~vPyDiDaS@K{Ft>*l3hha~h9j@HZi#<&%-n`!eDZ>9u#v~E9X{&{DFiTE+m*YNo!W-^ zQ2V@GgeC#5EQ4rTg&?dw{D^!HJyzwR$3cFz1VM@*NEHMrW2O#*G(wP02+|5cdUTX6`hzIIeqF+LU)9MAv?T?UW7!Vk9|_Tu$bbYe*+~ zh&)bSrV!ng?nYDea5{m0nSPCamtIbeit4K{$iLIB~BG*iEoJxu~0lF zR*QE;LeiuZDNSmS9!P&m_INo-en~EnKa{u2pUGd!r{vDcv&v87mo~PKA50slqnCflUx@rX)tG}qH=^6S`eUE-juhCulJ>ASo z_=gY?MGPd~CkS!`IhK5p45df%oB23#lh|LHFMT9?Yav=+JyCx{&(}BUTl5nBgnr(1 zTLO3-NDvW2aD+yr6YmiQv6V0ZA6+%bT>*#&-A=*vfW*&jVcy=T>Y&~1d26J6F znTzK}bLrrc9sF1PdHyDUm;aLw7Q%#Bp^v}|#X^bjrBEpZh|zYjw>Vf7#F665VwQMN zJSmqNI0A@!9wDNY(IO_F9wi=_?HVW~>GA>Eg-93)4|gd8uAkw2Ev6okgZEsKa$ z@*QdwwU;WV#xpg{HRe~Qp1IB3Wgak(nYY+KS9LIEFzo8Bi0Zb2`6!!s3tBGcZqOvJUN+6BQwY!$tz?Rss|O$ zbhk4)GmM$fEMm5>$JkqJPcU9Ow}jikeZ=kHc5`K11$UOK;eO|O^3U^W{9*nCf0{qX zU*zj}7vIP~;k|_bAx0P=Y!&thmxVgvrXYg_+kxF?NC%}eQdfDed|V!)EK@#I&MH4B z*Oc2zJ2hM#sV1wbs(rTlwrW?GscX~?>L=<>wM;EnkE`d@i|SDAHSH$EyhXR_!}NcE zb#CbJ3jvLW%LYlWNCi^46d?O3QHn!JP$#PIsd+HBT5V99R6i|L8?Gg5bF~H9a&3+F zxpo|KCtMfxA^LQEj{dtDphXBZ*n#>IEEsJ#F@cywyhbd9IL#vph;_t%;!ENo(VmPZ zdy}KdY2@2v4!N2vB`e5>WF*B=Hfk6o-gIgX_}xJjQpMB}>RYOgx=r1q9#Nt6GqgYt zp-0eT=-25?`UAR0KpXIi>sz zKFU?UP|v7W)oEbB!`emdq1H#=uUDI9D~F#&K>P_3tTvjcB$|l`axf`E3TKhOk{v0Y znn0bWo>IMO8x-6ox*s!?$!69uWemrzVJWVd+r>TRmWX|&7bN?a(lzO(oTmIkSqgr1 zD%G%kgK}4CuZpTw9j=a5)75$EVs$mdM~RA{CMKEDUWL$BAk!emox~wH#6_Zxcue#o zHE`7gawU0;d_?+#Q>wrfarAcP6!SY1!ltq_*@bY3b8HQJlYPSa*&!dl;|B7b1q`+N zWidm{7T1X%iQkI<66?iA(MO7wk|EgkNtMzdS(g*#sdA>g49fK``78OXd`-SDdnwn6|094y4kt>9p9nwlO|k?^+f{NRbpvAL5!IgVPunNc zE9hPHIl7U4LT58}h=qJ+Bl9!kg2G{8BiLFtm7C5j;tJr=xy4=L1Eo>QFvyU5YNpn# zjfKhqJ2WEH704N)nVZgwx=qj4?dCYbt#xE4^)Uoq4Sk)i=LSiPBtv0)PG!NGK6Wiv z+o*jFB_vc=^rz+|cx!Wjv?mDSpO6Wk5+{g9#BOpjl}8<-{Am@Q*6vIq^O)-(bQ0zY z*}_txKqwN>wwp+VH(&;}h-#)r!To3P4SYX{@VA8d!eU{CutV4< zgox21DXLJuXNsk;v01u=zl|s#;3aDT@64Lep t6VFa%*Ru6oPeBvL3mIUI@8vVfRb{$9OaE5?9$wNXaG|nQr*OLOe*kjZm-+wz delta 4917 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 HlkoiyK4^oO diff --git a/native/runner/runnerw/runnerw.cpp b/native/runner/runnerw/runnerw.cpp index ed4954d43d80..0e9fe3a9b47a 100644 --- a/native/runner/runnerw/runnerw.cpp +++ b/native/runner/runnerw/runnerw.cpp @@ -294,10 +294,12 @@ int main(int argc, char * argv[]) { NULL, &si, &pi)) { + DWORD exitCode = GetLastError(); + if (exitCode == 0) exitCode = 1; ErrorMessage("CreateProcess"); CloseHandle(newstdin); CloseHandle(write_stdin); - exit(2); + exit(exitCode); } if (hasConsoleWindow || childParams.createNewConsole) { attachChildConsole(pi); @@ -308,7 +310,7 @@ int main(int argc, char * argv[]) { CreateThread(NULL, 0, &scanStdinThread, &write_stdin, 0, NULL); - unsigned long exitCode = 0; + DWORD exitCode = 0; while (true) { int rc = WaitForSingleObject(pi.hProcess, INFINITE);