From 403a59cd1705c7b6978d84a59ca0afdea75e1c06 Mon Sep 17 00:00:00 2001 From: Lyubomir Marinov Date: Mon, 20 Aug 2012 14:23:19 +0000 Subject: [PATCH] Fixes a crash of the Outlook presence, IM and VoIP integration related to a report on the dev mailing list by Damian Kohlfeld. --- lib/native/windows-64/jmsofficecomm.dll | Bin 193053 -> 193053 bytes lib/native/windows/jmsofficecomm.dll | Bin 188499 -> 189011 bytes .../msofficecomm/OutOfProcessServer.cxx | 40 +++++++++++++++--- .../windows/msofficecomm/OutOfProcessServer.h | 6 +-- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/lib/native/windows-64/jmsofficecomm.dll b/lib/native/windows-64/jmsofficecomm.dll index af28cc97c8ff08a7edc02f45dd263ffe5541a9fd..466c2cf97846bc86938e2c26435f56bebcb21923 100755 GIT binary patch delta 20932 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 delta 20852 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 diff --git a/lib/native/windows/jmsofficecomm.dll b/lib/native/windows/jmsofficecomm.dll index 968465a2096f8d5560e46b8c60cb518c0148a0d7..8ebc0e9720227288892109568bf24548ff432467 100755 GIT binary patch delta 19165 zcmd6P3wTq-w*THCg#v{JX-g?>N!t{P6iCt}P0}<8lt)p(BIR9ZLBJxf0x3lV+R_#X z;St#$!tp4!qKF=aDjo|88Yoim8Bh>Kyp^MnQoyR`AV<;M-`Yvqy}4EY=W)OL=ldqJ z=QnGuS!>N&GqWctAGy1JbiAu`qw<4a2qSzQ`KEv4S?NWtz z{rwD6bzygy;&kEeP<(Lxqyu}ME>yXz&a9nVag}w%xrd!Dv_~>>^c6}6B%dzyo}9@r z71zS5+{LGBBEVB|OA=mr4$>Q>ioU44-*B%<6%sIfF1>p+7$&qbysx?tU}3{687RfK zs@&m~9x%3b-9)SELUE^-4RJDzP?LMzQ^?&Hq8N0#kgYf#aS)u$^qI%Pm>SZY3}MED z!)>p(4Xq(N2)fQyhx8qIeFhW@Aq+ftA_o5x=}u27cguzl8iu3^Z9}nt|Z|0F93!sq*5Z5Di~DWCH!c_$lcdbInq-YUbO`hYRG>oUzOX| z-+Ks}+7~K9iIs-8$11#M^LUrq8!CS3U>jI<)7Ia9%aNyuZ3vN8!}7N~_GhcP>m5^K z(!soCq_5%@yP}AM*lh|a3Aith8`3F7lAOmCb&8b4Q*{q}hI^w^MxXT)plc$O4-P5` z47zAK*CRBB=4nu9O719-IdTdV0@94VCU}Xl1$`FyR4w9smtIf|4cqLh2phF3MbOU?&Jn_O_4k}oSWP=UXnhA zE9uHd+ml@rVxZZH!qiMKWIId@-@~aDwaG zhkw|^S^N*{x%@t{A?TWy&6V}(Lr){KxoZDYziiIkrx(ojcFCqhwV9Drp)?NCl~OfZ zioP4%4}I2$Vo>H}1jek2?N8S1iyc7gK;jLb4;dM2sJDfYKaP#$Gc=a>lZ~?Qr`X9v zpBp!ys<-0qj>htXVQL~UFdn4D4s!2dj*aJJ7$-|s0GfuZh}EdLXX4X_&{VAEogP}{ ze)z72tW@%aJ&vZV;&}A*dK$VG8;Kv{I`(~p2CL|sC5al&o$R}qT6+0P?7QJ3LWrxO z!$xe-yXn!96@AB$XXV-KHZDFPiNs%%It{*k1buKzi-4s=h^vV@Kpu)i~8=VIMu^SPe~ zJV`W9+-;}6{sYhXGqmvpz>cYbHHU9aN)2Qv-+DSVkfD6*jHo3UB|T-%wSSHjp;&|4Dh6JDRqIC~`D( z(rkw!HJ972DGNJY_=eBNl+oev&s>Wtk+W(;+0EQ&ZE9~nTTKdLL#Tu@m)oj+H4$Kz z3`s~K#0S2VUrcSuFwGYkMyWkV$D6ZPS3;U3q$hWqhs1PbAvrdN19`cOPmadoXl_&b zP>Q1W)2GG!p${E>WH@|L=7&EJ#Go4fJQnH_*VJ9S0ix z>2L})vLk{!sP7)gkjn&l^ofDyKd5~&4;Au0j;g@T8-Y82z!@Ms+xysv-x~ zmRA*eY8_VOqH<(z#I)O=P>dn$Ma2|u|4>CKw&YJLu0_y$$jUTFCC{*XIGk)h@9;}; z_&FQ_DPRPD`EeSjex7qnrNV@#h7jT*je>4wn9!Aa%%aj5P->?dA0F+D1=uN=ppDnO5{Hb#@jNwJv>%%wZ_+NBPS7`Iv z$P2-7-@n$=98W?AKS1Efk1b}I<1rYERfAR`UU5JQm70=Q%5`ncyJ3V~~la#imfIZgOc^$0%xk$a;gSSBEc*;=K*;lvSK$F$ZD3 z$l>q?XaqB_n5&gbzm+Q#Eqb1RPZG?qxp#lGSZOUK+(`!1+-FQ%>WZ4B@49Xsr-{ zSH*#jk$6v}2Jd)MZXqp61G9(WEU-8`YA~$Hilt7hZjp38k@J*UVKpzdz?>{uO)XzX z)VzwCdnG#s3$s6tPps@?k0aT>$U+kOZT8qw-Z@2HEO)s-^KZbR9Y{7J<9>jc$d9Q{ zALyePqdt988((bueLNp?hs-&CJ|`;gSGO_VV1!t3z(D6$)Oiw}^s>eec9kD27Zuk$ zx^L25NBytryfS#5#XnzU0Uz`@m#xh7etVM}bWi_DZOavA$rrg26#QE!LOjtCc^gw$ zam;G)*dj4C-mbmzV$WlNSImmzdG=e=XXej1CS{P!c?zXNdy>5N!ad`#ogqudI5LkD zAibBviH>q07SrYC6_GaY!a*n%ug^Q+!zZA+_spBz;d@8G`{9*OL1o&S^UqTnQ<@$L zAV-?HgfS_3MU!AM{7klipDJJE-=Hz58*EbmW%JXR2gsfoc*Q`JrQ&6HH@#Z;A`g;% zSQ~HoYztfIs{wM)j!~3OxaRXAp-731P@;ws2!3fGS4@t=pdp0NxXlOJo|{6jn!uBg z(hx$U5&?#^*ZU%K{o_?#SQ{T0uKcgq@}V~kTK+D>bSi^B&E?eFnOBk5X8hPRTHe=> zeMSP^QpY7>;l;j8Yt*Zd?ufI2eTz*I>&QIMKlNj3XlVYj1o`n1?kS+TqI|U?wgVQQ z;uyZ0yhqAX+F=FkwL7W7mB?r_+~Q zi-2=FNget(q2gK!e~-q^pODfM%EE#wTE~VfqWQ}-?wJW%W#IgQzR~EzjL;bTouRij z9Ot6rDfaWz>z#Z+ODV=X=WdJPnG_Yq4l7g@nPIpQlGwW7Oix!sujKZ_v;~&_Xx#7l zBA*$?$6u9ucM)bQyz&-CaKzCrLsOFs8k&ZWcE{p+t%gW2Nz`Kv_BbK~Xw{kB(I5)1 z{0oWbMhsP_Y#EsJbpP-)ZUr}aq7pjb5wk@!^hCQ>WPx9kh7giRD1YPVXQd{+y5aWm zjg%b3=}+_-UimlLcsgJRiO*9}FZIL4*FoyPt^|EU2x&zETF2u$P8w?D4GhKUlEI?E z-wy@+G6k050*kgFuN4=$4s0C33n_l-;mRisrYXx+#8#aO-+B!qYF0yM?${*$P2!hH zsaVV5q)^%b9K&V)qru0pj~hBUT7qi&flecAU~T&+mx= z$F~eu^sQ)Y*-d&Mtj10{h(0QAbz1vE#jUPyP$PWnRkDm8aqZlr<{ADWywVMn4shi^ z@l+Knpx~Qyi_Vo#k>fzT>~lxAGKeMLSkR}spt|YEB(@hn}!|I*n zVa#B(BTl{(@%WR^rof$2xG&;KzTM1XTPXe(a+wD)>FR$#Te{j%U1*lr>$haFj)*EE ztU6QN(tKjetNmaWlCn~MI*GEf+GF*0bu>8GdCYCms!GMtX> zfTGi}5P5*tA)HDum-Yr6d8j_&i`+?dJwnQV1gk}pJ32kNlc#WZ1WCI-opy_ckg}xH zg`K608^hv>(rx#Y1iVdcM$0jR97kI29s`V5!#<*=h6LD0{LL467*e4Lh*ECQ!u6iN z?Teg)2U?LxGM_!i`JPa(p%cRdUo5z7dEFp3aN8Gm8zVv(JgRXFIthA5CheBok-S0i zL`7R3`tim>M~iy+y5d@FO(VFt&>5B?Ft;P0up^~@i8Un9uH`>RhWgd~3XoqCw_-*D z)*wfoLXP?Ego#qQr`N+0KM9=oKXnWX-OZE5&(uD| zXXSieC%haNH#UTjdgQ=X!BhNJG#_{JWC*(cekyW3zd+I}83jVH|8egn90i-XRuNC| zUYYqy5`t_RasV<$*O(Z5$5OYqBVRcqP=)Y$v^{@PU(kI?E7CFgI?L7@UJ8RS>K??? zbSg;b4VoIzsLnuISU{SSq;W$FdJjN;DUTU;=CCtO96M31A+A<7^@odR0W zOLc0NzrGb{=LXs-f!Y+Prv&QZfm$D^vjep?P%8p86R58R?%A~+UPN0qr)bc<* z1~qr?0W>Yjl9mKdf{B`)@Iq`IO+W#!~UvuJ+ zbnsTwVz9wQbUE$4alz+%oo3{=W9q^M?G)ji1BcD}O#Oo<`ip{W34U9R)wY)tpel%m?R? zLEfjiJrDBlgrs3V5D7I*>Ds1Y9F~1V*_|3rq5DDB-`B2&U;h}?@OB}u;Sw%>etR13 z`$VkajQPBVC#$&=^IJ9S2qK||*#ZrJzSXXVp`_uL{=RlKeEU{V!`KD9hWByi1?_3L z^{iOKH47djA3nQ_Yg)i(68Z4*$6^il3N*ZUvt13dNyDT5zIHWy_GVB+(;{BOA>7PG z?P<99Be8~0F5<&*BNwu`H4IOj5i7V6uavWmpn`czcm>0` zwM*JlaNKFJf=8C{3Knw7MXd_%@rV^XDNyjq@7h(6zojns_qD6w-0y-4u3pM#@;5uV zrYj|-fuVFSfVi~XDm&@dx`ScCN9VGYovJsTt2kxYefAhOyOAKq%>Chjz$YO;+DJWSykjx5PuOh5tAAC1x zo|8YqVc&1Pi4D><77y@?rLUX4haTf1S11I4{V}e1`F->~#6?^IU@d9a*rWcwJB{VD z_}Ob5YvaF%uwUb5l#cCws$F{*m+Ed0`|c4fd|y3h7DJ<5H(G9Z@+4m}z)xEo&af6d@;oA|yv4dxexvrS}h zCrt1mP;vjIyeIto6Ybh;UX@JCe?RWQRs6gEhE<7y870+vbFZ#S4oo?(>Nf7{RlLQ4 zdwR0C;qCS<4yA800(51M4DgGk+j0{7NI)##ZrU0&IP=P{8=TcCgLzFxbCqiXc^1@k4Ik2hTYs|mhhy#An@#ox=yKKu z?4|GUypXy!U@zb9y*X&_qOX44-tqpvJMHDyEbUi8dwYY5pWq3&V-)VxZC|m`1h3~h zmGSoWFALbqYw|FcTNbc4sA(B*Z{Qm!vbVpxeS3x9RLRSS1dc1c_PiA&$91BALF3N@ zYsv!)8lOxEf%1S${K>VE`?~yIyl{Aje#yHew)IrCnm>>3#fgg>x9(nl81XyV(zJr{vs&|_f2UHuUumVdA<+Mf$T+x|3ZWp@Z z(=zVwc8!4Jk7b;8(*%kH_Q2*%UD*K>SM#UP+6X`oW6e5MA9z2+>D0&Ib(vnD==ngx zW)Hi4bEs4a@Ict+Y>Skc1>a72_e{srh1Ia+fbzY^V{oWX#q%9jO#e%LBmS*HtD$re z3M`2&_25Cd%2Q}X`8{pjpmCxET}gEd+BvH|g#{?T$KME=S`-2QTt>DA+N|{ymZAKf zfPc21!CjySa>>%zJ0nMl&LR{m3J8)dWo>~`RPHIPCT5gsJpb0f@^zpC4IdaDG=hO) zt;7ImSECf+`L~4phx-1#z-WPz)hK*mR9CeHhHL}egmw{%70-8S>jqYYBA8gFXk%Mo zG}_@6w5=$zP5+bM3CxNj;GfG_9S|A_jM~jeXb{MNHRAbB1^(G~!4}9u;Vo^CS)d8y zoYA(TiW8+8r4a=dC}Qu_K-eY%xe#dY8AS3qO4F}9JjVc?tr!xu zCmp(@cI%O~RO2lw#{%`xZlOLDIdCW1N+ZlcEz3e11p~$XR-(B_!!#5tN*PK4it-+e zi@GrzZ9J2*|KDtk!AbtDbSc75=ABU9iQ0|QG6Ds4kQa67Z{`a#1|GQ=o<%7@al;Ev z)B*wj=27JT_@KpbcXdcgZ7(u^4Z~sPpQSIYMUHt;T2PpLxN#}AhptP4DGR~9yn;B9K#v&9%w|K8A&>;n|4>6A+0Q>}scF%D^HL1SSl>cNK;<<

GghRA3XY7_2~hp`b-daBchvEk$Uj$N`?KD78jxmqb#r5RP}Mx`3hDs`8h z%v0S#HE#y{N-De8)q4|LTKZDv7ny(09AGw>N17LzcbZ=`zhZvd{DFC(Wte5ErNpw% z@<$7UvCm_)2Ow~(>Snx&dGnoSy)<~xl~ z(_I^-jn`&tCu?VDU(_DZp45J*{Yu-cWptf%vAQIkUT4welg9-{A|Pu4HdAJTuIzo7q8e?@;&e_P+x(8Dm=Fx~K=VTEC}!D0BL;aNkS z;fUco!%pK7;|Ip`#xIRbModO>#?Xuj8S65(XPnM>)O0NKQl`Y5XdZ1|V1C~`&GMjS zi{+T*ti@+x3Q8GfHJmC_j#B0;i8$+9$PpwCA*6Yrofa(GAg!)~(Pz zs(V3q93Hu*lcx7f@0+emADKQeeM$Pd^zG@-q@PLuM|yXCls;ZRNS~{ps$Z+G)Nj?h z^iSyjtgqD{)F0Kqt3R#(Oy8{UVvrf43`vFohAD=b2Akn8hU11)h7S#&8!j0_jD3s= z#?t=A`;AkKCB`+zO~#|fcZ_F^jmFEyZ;d}0dt@YK49K{c(VX#J#y>KC$(UqXY+7#G zVcKJQ$#l~6x#_Q_tEO*Ey3FC3^D{SOZq9ro^Zm?^;OcKPr_3Lj|7vbBe`_9W zdD`-VH;-&uaNFh$s~-3Tm+vWxOAWsEXWdACxnG%ANF*C}@? zUstB6vQ-bMDpYpWH>x=GNcGd|H`Sl1v(pOGHl^)Odp<2(lc|}fIi~qS^P{FvyHWds zwqAQmJ481_w;s{-i!LU8WBT6ochdiw-jsg7evN*QUSfzh7!7+3Ck&YHfJGx_M0!7J6gtC9=1GZ z*=PC0@`Z)6kbYOAR*q9Xq+GB3Liv@li%O-Mpej+VRXwNLr@E-Rts0~rqb^aeRX?ZR zrN%|wyh&lY$F$T`%9-j+Z$&$Thc9N3(UmN!iJ+7uPjkMs9LNVtIk!gS8q|TO52lm zB<*ZkH%+o;hGvdthvrGm587X}{dI$p-ZOPB-7chdcfCRn=4ytaZ&yQ=_-JJ6I&EXW z?YL(LE0Gjza5?v|@hp(%IILg#H$r5Lp1k zBVs;6GRlNBVfcw?wMfncAT1)UJwTl0Lav)Y3QDnHv<;sp#ao34xk!kJZ7_aw&?pjp z5J-WD#)=_z6gn z$cq)7fr#XM3dFe{d~MdJc7fK*go3sMv5MGE0Fkd3()<9VNW?X*D^wJ5Ie@fO3Aqjd zu|mbfw&5cXMmZujGa>8iRzA+|l#G^(ru>@-=pmYNb0nf-op6lxK%A9Aq!vh#YwDBi zn$cDf>7`y6Nkke(Te3)-fk5OUtZ3&2!s(y z)FvXYRtss~1tNPyh**+9vr3560;v^o^;RI(TtC;aH9gBjLoV(|?tS@bR@+auNGRi} z{uoE3@85w~A9024W)mgWDwh&9TjrXun@wWfu9DsCPZC)LKMTdzMWaT`kgcG8XJ25wZdZon+fm@;uRq#+IuPwROH{*=}s9T$J@6;BV8)L=oOo zgPE8sl$Q^L5z)K|q#JW-_Cnp0mBIE#& zM%RGn5lFSJvCp%kl3PTRU6ctKBB=*~6uAyP&wf%`W)TYi)Qr_lgh28 z1485?kVX-rfH#yPt_OhBidKk6fE3LZ$~h|qG9*{SH?wja?~?K-fZvM1Mdbw9kyOm@j@*~Fg8$w9XK{QO0;<}U`@#99zmPxiar z3rR(;{k81Wu7wQJDJ>{N+$x_^dN0xFs=B-#kXEkbqy$;lJa z90uYPA!mt8gfszB&Jc3_2&6!SME4qnX%s;jK&&%erdQb25^FxMWXI*e3i4fFyaKtR zpy*-7)5-<6F|`=d-8#SdpjkfG#@uS9$)7iGVe#@p=42aE^1$+ia~Ct`OWUC3wq_~~V#Pz~!?Aj#!dfA5_>Spf2QsO^X1d*Qi0;#*Vj?H2v zsT*C+gREB~d&ITs5O#ZJiEGy(b|hBkuMe?5_4FTFf{ZD+{qeZIf1OS0=ikMG9Z?ey zM*OlJM9K+SS7&;IwMkfAD<)6mko!*8+s zSdc9^%I^=`j^0kSmv0Qza7XY?t#LjBb6%b@d%~p~O?@ zn({8YN+Mh7`uJTO9ct@3zsGi!U_4jU2kayWUi1NMsCDiBfUQAm#D{DW?ZFRy$UY<~ zD0iJh4SR=rpsRdi-5C$7B#SznVGs25pIL(1d|rx`ub5)*$z!uk` zbMQ`?>mpU|I`$KGKg%|{UOtazqwDN>epc0Av zJuHzZOI=TY&YqK4i(RWOvd7_Y%NI}%fwSTZ*4xj2a1843+T&1x-|>Tp=}!oRwXVwl zVx8pNs7AI>lC!X`tdTWKAnUD5Y!lm9_xxYkULBz3(aUfrPM()9!)}I;^Pr%K&yjU~ zu0V09aD`S?o9po_(74uh1gIpZz;y{tiLB7o(TfoFxW;;6uct1#iG7%r6fAUAUuCyS uWQ$zNX1K;(H@BG`B$2?Gk6q^@%Js!{wpJoTMBHGHOROvFCVj*H-16V--cx4) delta 19046 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 a%6a))wpQYTN3^h~B%T%ZlfGkrZTUX{)bv;Y diff --git a/src/native/windows/msofficecomm/OutOfProcessServer.cxx b/src/native/windows/msofficecomm/OutOfProcessServer.cxx index c8b596528..31beda0dd 100644 --- a/src/native/windows/msofficecomm/OutOfProcessServer.cxx +++ b/src/native/windows/msofficecomm/OutOfProcessServer.cxx @@ -71,7 +71,7 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) } CRITICAL_SECTION OutOfProcessServer::_criticalSection; -ITypeLib * OutOfProcessServer::_iTypeLib; +LPTYPELIB OutOfProcessServer::_iTypeLib; ClassFactory * OutOfProcessServer::_messengerClassFactory = NULL; LPSTR OutOfProcessServer::_packageName; HANDLE OutOfProcessServer::_threadHandle; @@ -225,7 +225,12 @@ jint OutOfProcessServer::JNI_OnLoad(JavaVM *vm) HRESULT OutOfProcessServer::loadRegTypeLib() { - ITypeLib *iTypeLib; + /* + * Microsoft Office will need the Office Communicator 2007 API to be able to + * talk to us. Make sure it is available. + */ + + LPTYPELIB iTypeLib; HRESULT hr = ::LoadRegTypeLib(LIBID_CommunicatorUA, 1, 0, 0, &iTypeLib); if (SUCCEEDED(hr)) @@ -234,6 +239,8 @@ HRESULT OutOfProcessServer::loadRegTypeLib() { HMODULE module; + _iTypeLib = NULL; + if (::GetModuleHandleEx( GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, @@ -253,7 +260,7 @@ HRESULT OutOfProcessServer::loadRegTypeLib() if (oleaut32) { - typedef HRESULT (*RTLFU)(LPTYPELIB,LPOLESTR,LPOLESTR); + typedef HRESULT (WINAPI *RTLFU)(LPTYPELIB,LPOLESTR,LPOLESTR); RTLFU registerTypeLibForUser = (RTLFU) ::GetProcAddress( @@ -264,18 +271,37 @@ HRESULT OutOfProcessServer::loadRegTypeLib() { hr = registerTypeLibForUser(iTypeLib, path, NULL); if (SUCCEEDED(hr)) - _iTypeLib = iTypeLib; + { + /* + * The whole point of what has been done till + * now is securing the success of future calls + * to LoadRegTypeLib. Make sure that is indeed + * the case. + */ + + iTypeLib->Release(); + + hr + = ::LoadRegTypeLib( + LIBID_CommunicatorUA, + 1, + 0, + 0, + &iTypeLib); + if (SUCCEEDED(hr)) + _iTypeLib = iTypeLib; + } } else hr = E_UNEXPECTED; } else hr = E_UNEXPECTED; + if (iTypeLib != _iTypeLib) + iTypeLib->Release(); } } } - if (_iTypeLib != iTypeLib) - iTypeLib->Release(); } return hr; } @@ -422,7 +448,7 @@ unsigned __stdcall OutOfProcessServer::run(void *) { /* * Enable the use of the QueueUserAPC function by - * entering an altertable state. + * entering an alertable state. */ if ((WAIT_FAILED == ::MsgWaitForMultipleObjectsEx( diff --git a/src/native/windows/msofficecomm/OutOfProcessServer.h b/src/native/windows/msofficecomm/OutOfProcessServer.h index b069a724a..a7fe7b2cc 100644 --- a/src/native/windows/msofficecomm/OutOfProcessServer.h +++ b/src/native/windows/msofficecomm/OutOfProcessServer.h @@ -14,8 +14,8 @@ class ClassFactory; /** - * Implements the jmsoutlookcomm application which is an out-of-process local COM - * server. + * Implements the jmsoutlookcomm application which is an out-of-process local + * COM server. * * @author Lyubomir Marinov */ @@ -53,7 +53,7 @@ private: static DWORD setIMProvidersCommunicatorUpAndRunning(DWORD dw); static CRITICAL_SECTION _criticalSection; - static ITypeLib * _iTypeLib; + static LPTYPELIB _iTypeLib; static ClassFactory * _messengerClassFactory; static LPSTR _packageName; static HANDLE _threadHandle;